mirror of
https://github.com/GTAmodding/re3.git
synced 2021-02-19 17:49:54 +01:00
fixed questionable RW usage; changed radar mask to PS2 techinque
This commit is contained in:
parent
a5c7151656
commit
6225e50723
@ -3269,7 +3269,7 @@ void
|
||||
CCamera::SetRwCamera(RwCamera *cam)
|
||||
{
|
||||
m_pRwCamera = cam;
|
||||
m_viewMatrix.Attach(&m_pRwCamera->viewMatrix, false);
|
||||
m_viewMatrix.Attach(RwCameraGetViewMatrix(m_pRwCamera), false);
|
||||
CMBlur::MotionBlurOpen(m_pRwCamera);
|
||||
}
|
||||
|
||||
|
@ -134,8 +134,8 @@ uint32 &CCutsceneMgr::ms_cutsceneLoadStatus = *(uint32*)0x95CB40;
|
||||
RpAtomic *
|
||||
CalculateBoundingSphereRadiusCB(RpAtomic *atomic, void *data)
|
||||
{
|
||||
float radius = RpAtomicGetBoundingSphereMacro(atomic)->radius;
|
||||
RwV3d center = RpAtomicGetBoundingSphereMacro(atomic)->center;
|
||||
float radius = RpAtomicGetBoundingSphere(atomic)->radius;
|
||||
RwV3d center = RpAtomicGetBoundingSphere(atomic)->center;
|
||||
|
||||
for (RwFrame *frame = RpAtomicGetFrame(atomic); RwFrameGetParent(frame); frame = RwFrameGetParent(frame))
|
||||
RwV3dTransformPoints(¢er, ¢er, 1, RwFrameGetMatrix(frame));
|
||||
@ -326,7 +326,7 @@ CCutsceneMgr::CreateCutsceneObject(int modelId)
|
||||
|
||||
pModelInfo->SetColModel(pColModel);
|
||||
clump = (RpClump*)pModelInfo->GetRwObject();
|
||||
assert(RwObjectGetType(clump) == rpCLUMP);
|
||||
assert(RwObjectGetType((RwObject*)clump) == rpCLUMP);
|
||||
RpClumpForAllAtomics(clump, CalculateBoundingSphereRadiusCB, &radius);
|
||||
|
||||
pColModel->boundingSphere.radius = radius;
|
||||
|
@ -311,7 +311,7 @@ CFileLoader::FindRelatedModelInfoCB(RpAtomic *atomic, void *data)
|
||||
int n;
|
||||
RpClump *clump = (RpClump*)data;
|
||||
|
||||
nodename = GetFrameNodeName(RpClumpGetFrame(atomic));
|
||||
nodename = GetFrameNodeName(RpAtomicGetFrame(atomic));
|
||||
GetNameAndLOD(nodename, name, &n);
|
||||
mi = (CSimpleModelInfo*)CModelInfo::GetModelInfo(name, nil);
|
||||
if(mi){
|
||||
|
@ -645,15 +645,14 @@ void CRadar::DrawRadarMask()
|
||||
};
|
||||
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, (void*)FALSE);
|
||||
RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDSRCALPHA);
|
||||
RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA);
|
||||
RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDZERO);
|
||||
RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDONE);
|
||||
RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)FALSE);
|
||||
RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERLINEAR);
|
||||
RwRenderStateSet(rwRENDERSTATESHADEMODE, (void*)rwSHADEMODEFLAT);
|
||||
RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)FALSE);
|
||||
RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE);
|
||||
RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE);
|
||||
RwD3D8SetRenderState(rwRENDERSTATESTENCILFUNCTION, rwSTENCILFUNCTIONALWAYS);
|
||||
|
||||
CVector2D out[8];
|
||||
CVector2D in;
|
||||
@ -675,8 +674,6 @@ void CRadar::DrawRadarMask()
|
||||
CSprite2d::SetMaskVertices(8, (float *)out);
|
||||
RwIm2DRenderPrimitive(rwPRIMTYPETRIFAN, CSprite2d::GetVertices(), 8);
|
||||
};
|
||||
|
||||
RwD3D8SetRenderState(rwRENDERSTATESTENCILFUNCTION, rwSTENCILFUNCTIONGREATER);
|
||||
}
|
||||
|
||||
void CRadar::DrawRadarSection(int32 x, int32 y)
|
||||
|
@ -275,9 +275,9 @@ CEntity::CreateRwObject(void)
|
||||
if(IsBuilding())
|
||||
gBuildings++;
|
||||
if(RwObjectGetType(m_rwObject) == rpATOMIC)
|
||||
m_matrix.AttachRW(RwFrameGetMatrix(RpAtomicGetFrame(m_rwObject)), false);
|
||||
m_matrix.AttachRW(RwFrameGetMatrix(RpAtomicGetFrame((RpAtomic*)m_rwObject)), false);
|
||||
else if(RwObjectGetType(m_rwObject) == rpCLUMP)
|
||||
m_matrix.AttachRW(RwFrameGetMatrix(RpClumpGetFrame(m_rwObject)), false);
|
||||
m_matrix.AttachRW(RwFrameGetMatrix(RpClumpGetFrame((RpClump*)m_rwObject)), false);
|
||||
mi->AddRef();
|
||||
}
|
||||
}
|
||||
@ -290,7 +290,7 @@ CEntity::DeleteRwObject(void)
|
||||
m_matrix.Detach();
|
||||
if(m_rwObject){
|
||||
if(RwObjectGetType(m_rwObject) == rpATOMIC){
|
||||
f = RpAtomicGetFrame(m_rwObject);
|
||||
f = RpAtomicGetFrame((RpAtomic*)m_rwObject);
|
||||
RpAtomicDestroy((RpAtomic*)m_rwObject);
|
||||
RwFrameDestroy(f);
|
||||
}else if(RwObjectGetType(m_rwObject) == rpCLUMP)
|
||||
@ -307,9 +307,9 @@ CEntity::UpdateRwFrame(void)
|
||||
{
|
||||
if(m_rwObject){
|
||||
if(RwObjectGetType(m_rwObject) == rpATOMIC)
|
||||
RwFrameUpdateObjects(RpAtomicGetFrame(m_rwObject));
|
||||
RwFrameUpdateObjects(RpAtomicGetFrame((RpAtomic*)m_rwObject));
|
||||
else if(RwObjectGetType(m_rwObject) == rpCLUMP)
|
||||
RwFrameUpdateObjects(RpClumpGetFrame(m_rwObject));
|
||||
RwFrameUpdateObjects(RpClumpGetFrame((RpClump*)m_rwObject));
|
||||
}
|
||||
}
|
||||
|
||||
@ -482,9 +482,9 @@ CEntity::AttachToRwObject(RwObject *obj)
|
||||
m_rwObject = obj;
|
||||
if(m_rwObject){
|
||||
if(RwObjectGetType(m_rwObject) == rpATOMIC)
|
||||
m_matrix.Attach(RwFrameGetMatrix(RpAtomicGetFrame(m_rwObject)), false);
|
||||
m_matrix.Attach(RwFrameGetMatrix(RpAtomicGetFrame((RpAtomic*)m_rwObject)), false);
|
||||
else if(RwObjectGetType(m_rwObject) == rpCLUMP)
|
||||
m_matrix.Attach(RwFrameGetMatrix(RpClumpGetFrame(m_rwObject)), false);
|
||||
m_matrix.Attach(RwFrameGetMatrix(RpClumpGetFrame((RpClump*)m_rwObject)), false);
|
||||
CModelInfo::GetModelInfo(m_modelIndex)->AddRef();
|
||||
}
|
||||
}
|
||||
|
@ -216,7 +216,7 @@ CPedModelInfo::AnimatePedColModel(CColModel* colmodel, RwFrame* frame)
|
||||
RwMatrixCopy(mat, RwFrameGetMatrix(f));
|
||||
|
||||
for (f = RwFrameGetParent(f); f; f = RwFrameGetParent(f)) {
|
||||
RwMatrixTransform(mat, &f->modelling, rwCOMBINEPOSTCONCAT);
|
||||
RwMatrixTransform(mat, RwFrameGetMatrix(f), rwCOMBINEPOSTCONCAT);
|
||||
if (RwFrameGetParent(f) == frame)
|
||||
break;
|
||||
}
|
||||
|
@ -707,7 +707,7 @@ RpMaterial*
|
||||
CVehicleModelInfo::GetEditableMaterialListCB(RpMaterial *material, void *data)
|
||||
{
|
||||
static RwRGBA white = { 255, 255, 255, 255 };
|
||||
RwRGBA *col;
|
||||
const RwRGBA *col;
|
||||
editableMatCBData *cbdata;
|
||||
|
||||
cbdata = (editableMatCBData*)data;
|
||||
@ -758,8 +758,8 @@ CVehicleModelInfo::SetVehicleColour(uint8 c1, uint8 c2)
|
||||
col = ms_vehicleColourTable[c1];
|
||||
coltex = ms_colourTextureTable[c1];
|
||||
for(matp = m_materials1; *matp; matp++){
|
||||
if(RpMaterialGetTexture(*matp) && RpMaterialGetTexture(*matp)->name[0] != '@'){
|
||||
colp = RpMaterialGetColor(*matp);
|
||||
if(RpMaterialGetTexture(*matp) && RwTextureGetName(RpMaterialGetTexture(*matp))[0] != '@'){
|
||||
colp = (RwRGBA*)RpMaterialGetColor(*matp); // get rid of const
|
||||
colp->red = col.red;
|
||||
colp->green = col.green;
|
||||
colp->blue = col.blue;
|
||||
@ -773,8 +773,8 @@ CVehicleModelInfo::SetVehicleColour(uint8 c1, uint8 c2)
|
||||
col = ms_vehicleColourTable[c2];
|
||||
coltex = ms_colourTextureTable[c2];
|
||||
for(matp = m_materials2; *matp; matp++){
|
||||
if(RpMaterialGetTexture(*matp) && RpMaterialGetTexture(*matp)->name[0] != '@'){
|
||||
colp = RpMaterialGetColor(*matp);
|
||||
if(RpMaterialGetTexture(*matp) && RwTextureGetName(RpMaterialGetTexture(*matp))[0] != '@'){
|
||||
colp = (RwRGBA*)RpMaterialGetColor(*matp); // get rid of const
|
||||
colp->red = col.red;
|
||||
colp->green = col.green;
|
||||
colp->blue = col.blue;
|
||||
@ -861,7 +861,7 @@ CreateCarColourTexture(uint8 r, uint8 g, uint8 b)
|
||||
RwImageDestroy(img);
|
||||
RwFree(pixels);
|
||||
tex = RwTextureCreate(ras);
|
||||
tex->name[0] = '@';
|
||||
RwTextureGetName(tex)[0] = '@';
|
||||
return tex;
|
||||
}
|
||||
|
||||
@ -1058,7 +1058,7 @@ CVehicleModelInfo::LoadEnvironmentMaps(void)
|
||||
}
|
||||
if(gpWhiteTexture == nil){
|
||||
gpWhiteTexture = RwTextureRead("white", nil);
|
||||
gpWhiteTexture->name[0] = '@';
|
||||
RwTextureGetName(gpWhiteTexture)[0] = '@';
|
||||
RwTextureSetFilterMode(gpWhiteTexture, rwFILTERLINEAR);
|
||||
}
|
||||
CTxdStore::PopCurrentTxd();
|
||||
|
@ -20,7 +20,7 @@ CCutsceneHead::CCutsceneHead(CObject *obj)
|
||||
m_pHeadNode = RpAnimBlendClumpFindFrame((RpClump*)obj->m_rwObject, "Shead")->frame;
|
||||
atm = (RpAtomic*)GetFirstObject(m_pHeadNode);
|
||||
if(atm){
|
||||
assert(RwObjectGetType(atm) == rpATOMIC);
|
||||
assert(RwObjectGetType((RwObject*)atm) == rpATOMIC);
|
||||
RpAtomicSetFlags(atm, RpAtomicGetFlags(atm) & ~rpATOMICRENDER);
|
||||
}
|
||||
}
|
||||
|
@ -154,7 +154,7 @@ CParticleObject::AddObject(uint16 type, CVector const &pos, CVector const &targe
|
||||
pobj->m_nRemoveTimer = 0;
|
||||
|
||||
if ( color.alpha != 0 )
|
||||
RwRGBAAssign(&pobj->m_Color, &color);
|
||||
pobj->m_Color, color;
|
||||
else
|
||||
pobj->m_Color.alpha = 0;
|
||||
|
||||
|
@ -676,7 +676,7 @@ RemoveAllModelCB(RwObject *object, void *data)
|
||||
{
|
||||
RpAtomic *atomic = (RpAtomic*)object;
|
||||
if (CVisibilityPlugins::GetAtomicModelInfo(atomic)) {
|
||||
RpClumpRemoveAtomic(atomic->clump, atomic);
|
||||
RpClumpRemoveAtomic(RpAtomicGetClump(atomic), atomic);
|
||||
RpAtomicDestroy(atomic);
|
||||
}
|
||||
return object;
|
||||
@ -902,7 +902,7 @@ static RwObject*
|
||||
SetPedAtomicVisibilityCB(RwObject* object, void* data)
|
||||
{
|
||||
if (data == nil)
|
||||
RpAtomicSetFlags(object, 0);
|
||||
RpAtomicSetFlags((RpAtomic*)object, 0);
|
||||
return object;
|
||||
}
|
||||
|
||||
|
@ -340,7 +340,7 @@ CPedIK::RestoreLookAt(void)
|
||||
}
|
||||
|
||||
void
|
||||
CPedIK::ExtractYawAndPitchWorld(RwMatrixTag *mat, float *yaw, float *pitch)
|
||||
CPedIK::ExtractYawAndPitchWorld(RwMatrix *mat, float *yaw, float *pitch)
|
||||
{
|
||||
float f = clamp(DotProduct(mat->up, CVector(0.0f, 1.0f, 0.0f)), -1.0f, 1.0f);
|
||||
*yaw = Acos(f);
|
||||
@ -352,7 +352,7 @@ CPedIK::ExtractYawAndPitchWorld(RwMatrixTag *mat, float *yaw, float *pitch)
|
||||
}
|
||||
|
||||
void
|
||||
CPedIK::ExtractYawAndPitchLocal(RwMatrixTag *mat, float *yaw, float *pitch)
|
||||
CPedIK::ExtractYawAndPitchLocal(RwMatrix *mat, float *yaw, float *pitch)
|
||||
{
|
||||
float f = clamp(DotProduct(mat->at, CVector(0.0f, 0.0f, 1.0f)), -1.0f, 1.0f);
|
||||
*yaw = Acos(f);
|
||||
|
@ -54,8 +54,8 @@ public:
|
||||
void GetComponentPosition(RwV3d *pos, uint32 node);
|
||||
static RwMatrix *GetWorldMatrix(RwFrame *source, RwMatrix *destination);
|
||||
void RotateTorso(AnimBlendFrameData* animBlend, LimbOrientation* limb, bool changeRoll);
|
||||
void ExtractYawAndPitchLocal(RwMatrixTag *mat, float *yaw, float *pitch);
|
||||
void ExtractYawAndPitchWorld(RwMatrixTag *mat, float *yaw, float *pitch);
|
||||
void ExtractYawAndPitchLocal(RwMatrix *mat, float *yaw, float *pitch);
|
||||
void ExtractYawAndPitchWorld(RwMatrix *mat, float *yaw, float *pitch);
|
||||
LimbMoveStatus MoveLimb(LimbOrientation &limb, float approxPhi, float approxTheta, LimbMovementInfo &moveInfo);
|
||||
bool RestoreGunPosn(void);
|
||||
bool LookInDirection(float phi, float theta);
|
||||
|
@ -87,7 +87,7 @@ CClouds::Render(void)
|
||||
RwV3d pos = { 0.0f, -100.0f, 15.0f };
|
||||
RwV3dAdd(&worldpos, &campos, &pos);
|
||||
if(CSprite::CalcScreenCoors(worldpos, &screenpos, &szx, &szy, false)){
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, gpCoronaTexture[2]->raster);
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, RwTextureGetRaster(gpCoronaTexture[2]));
|
||||
if(CCoronas::bSmallMoon){
|
||||
szx *= 4.0f;
|
||||
szy *= 4.0f;
|
||||
@ -116,7 +116,7 @@ CClouds::Render(void)
|
||||
static float StarCoorsY[9] = { 0.0f, 0.45f, 0.9f, 1.0f, 0.85f, 0.52f, 0.48f, 0.35f, 0.2f };
|
||||
static float StarSizes[9] = { 1.0f, 1.4f, 0.9f, 1.0f, 0.6f, 1.5f, 1.3f, 1.0f, 0.8f };
|
||||
int brightness = (1.0f - coverage) * starintens;
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, gpCoronaTexture[0]->raster);
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, RwTextureGetRaster(gpCoronaTexture[0]));
|
||||
for(i = 0; i < 11; i++){
|
||||
RwV3d pos = { 100.0f, 0.0f, 10.0f };
|
||||
if(i >= 9) pos.x = -pos.x;
|
||||
@ -132,7 +132,7 @@ CClouds::Render(void)
|
||||
CSprite::FlushSpriteBuffer();
|
||||
|
||||
// *
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, gpCoronaTexture[0]->raster);
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, RwTextureGetRaster(gpCoronaTexture[0]));
|
||||
RwV3d pos = { 100.0f, 0.0f, 10.0f };
|
||||
RwV3dAdd(&worldpos, &campos, &pos);
|
||||
worldpos.y -= 90.0f;
|
||||
@ -156,7 +156,7 @@ CClouds::Render(void)
|
||||
int b = CTimeCycle::GetLowCloudsBlue() * lowcloudintensity;
|
||||
for(int cloudtype = 0; cloudtype < 3; cloudtype++){
|
||||
for(i = cloudtype; i < 12; i += 3){
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, gpCloudTex[cloudtype]->raster);
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, RwTextureGetRaster(gpCloudTex[cloudtype]));
|
||||
RwV3d pos = { 800.0f*LowCloudsX[i], 800.0f*LowCloudsY[i], 60.0f*LowCloudsZ[i] };
|
||||
worldpos.x = campos.x + pos.x;
|
||||
worldpos.y = campos.y + pos.y;
|
||||
@ -202,7 +202,7 @@ CClouds::Render(void)
|
||||
|
||||
RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDSRCALPHA);
|
||||
RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA);
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, gpCloudTex[4]->raster);
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, RwTextureGetRaster(gpCloudTex[4]));
|
||||
for(i = 0; i < 37; i++){
|
||||
RwV3d pos = { 2.0f*CoorsOffsetX[i], 2.0f*CoorsOffsetY[i], 40.0f*CoorsOffsetZ[i] + 40.0f };
|
||||
worldpos.x = pos.x*rot_cos + pos.y*rot_sin + campos.x;
|
||||
@ -244,7 +244,7 @@ CClouds::Render(void)
|
||||
// Highlights
|
||||
RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDONE);
|
||||
RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDONE);
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, gpCloudTex[3]->raster);
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, RwTextureGetRaster(gpCloudTex[3]));
|
||||
|
||||
for(i = 0; i < 37; i++){
|
||||
RwV3d pos = { 2.0f*CoorsOffsetX[i], 2.0f*CoorsOffsetY[i], 40.0f*CoorsOffsetZ[i] + 40.0f };
|
||||
@ -269,7 +269,7 @@ CClouds::Render(void)
|
||||
static uint8 BowRed[6] = { 30, 30, 30, 10, 0, 15 };
|
||||
static uint8 BowGreen[6] = { 0, 15, 30, 30, 0, 0 };
|
||||
static uint8 BowBlue[6] = { 0, 0, 0, 10, 30, 30 };
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, gpCoronaTexture[0]->raster);
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, RwTextureGetRaster(gpCoronaTexture[0]));
|
||||
for(i = 0; i < 6; i++){
|
||||
RwV3d pos = { i*1.5f, 100.0f, 5.0f };
|
||||
RwV3dAdd(&worldpos, &campos, &pos);
|
||||
|
@ -755,14 +755,14 @@ void CTowerClock::Render()
|
||||
&TempV[1],
|
||||
m_Position.x + Sin(angleMinute) * m_fScale * m_Size.x,
|
||||
m_Position.y + Sin(angleMinute) * m_fScale * m_Size.y,
|
||||
m_Position.z + Cos(angleMinute) * m_fScale;
|
||||
m_Position.z + Cos(angleMinute) * m_fScale
|
||||
);
|
||||
RwIm3DVertexSetPos(&TempV[2], m_Position.x, m_Position.y, m_Position.z);
|
||||
RwIm3DVertexSetPos(
|
||||
&TempV[3],
|
||||
m_Position.x + Sin(angleHour) * 0.75f * m_fScale * m_Size.x,
|
||||
m_Position.y + Sin(angleHour) * 0.75f * m_fScale * m_Size.y,
|
||||
m_Position.z + Cos(angleHour) * 0.75f * m_fScale;
|
||||
m_Position.z + Cos(angleHour) * 0.75f * m_fScale
|
||||
);
|
||||
|
||||
LittleTest();
|
||||
|
@ -4,12 +4,13 @@
|
||||
#include "Camera.h"
|
||||
#include "MBlur.h"
|
||||
|
||||
// Originally taken from RW example 'mblur'
|
||||
|
||||
RwRaster *&CMBlur::pFrontBuffer = *(RwRaster**)0x8E2C48;
|
||||
bool &CMBlur::ms_bJustInitialised = *(bool*)0x95CDAB;
|
||||
bool &CMBlur::BlurOn = *(bool*)0x95CDAD;
|
||||
|
||||
static RwIm2DVertex Vertex[4];
|
||||
//static RwIm2DVertex *Vertex = (RwIm2DVertex*)0x62F780;
|
||||
static RwImVertexIndex Index[6] = { 0, 1, 2, 0, 2, 3 };
|
||||
|
||||
void
|
||||
|
@ -22,10 +22,10 @@
|
||||
#include "Shadows.h"
|
||||
#include "main.h"
|
||||
|
||||
RxObjSpace3DVertex StreakVertices[4];
|
||||
RwIm3DVertex StreakVertices[4];
|
||||
RwImVertexIndex StreakIndexList[12];
|
||||
|
||||
RxObjSpace3DVertex TraceVertices[6];
|
||||
RwIm3DVertex TraceVertices[6];
|
||||
RwImVertexIndex TraceIndexList[12];
|
||||
|
||||
|
||||
@ -291,10 +291,10 @@ void CBulletTraces::Render(void)
|
||||
for (int i = 0; i < NUMBULLETTRACES; i++) {
|
||||
if (!aTraces[i].m_bInUse)
|
||||
continue;
|
||||
RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)0);
|
||||
RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)2);
|
||||
RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)2);
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, gpShadowExplosionTex->raster);
|
||||
RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE);
|
||||
RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDONE);
|
||||
RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDONE);
|
||||
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, RwTextureGetRaster(gpShadowExplosionTex));
|
||||
CVector inf = aTraces[i].m_vecCurrentPos;
|
||||
CVector sup = aTraces[i].m_vecTargetPos;
|
||||
CVector center = (inf + sup) / 2;
|
||||
@ -316,9 +316,9 @@ void CBulletTraces::Render(void)
|
||||
RwIm3DEnd();
|
||||
}
|
||||
}
|
||||
RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)1);
|
||||
RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)5);
|
||||
RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)6);
|
||||
RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE);
|
||||
RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDSRCALPHA);
|
||||
RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA);
|
||||
}
|
||||
|
||||
void CBulletTraces::Update(void)
|
||||
@ -414,8 +414,7 @@ C3dMarker::Render()
|
||||
{
|
||||
if (m_pAtomic == nil) return;
|
||||
|
||||
RwRGBA *color = RpMaterialGetColor(m_pMaterial);
|
||||
*color = m_Color;
|
||||
RpMaterialSetColor(m_pMaterial, &m_Color);
|
||||
|
||||
m_Matrix.UpdateRW();
|
||||
|
||||
|
@ -432,6 +432,7 @@ void
|
||||
CSprite::Set6Vertices2D(RwIm2DVertex *verts, const CRect &r, const CRGBA &c0, const CRGBA &c1, const CRGBA &c2, const CRGBA &c3)
|
||||
{
|
||||
float screenz, recipz;
|
||||
float z = RwCameraGetNearClipPlane(Scene.camera); // not done by game
|
||||
|
||||
screenz = m_f2DNearScreenZ;
|
||||
recipz = m_fRecipNearClipPlane;
|
||||
@ -496,6 +497,7 @@ CSprite::Set6Vertices2D(RwIm2DVertex *verts, float x1, float y1, float x2, float
|
||||
const CRGBA &c0, const CRGBA &c1, const CRGBA &c2, const CRGBA &c3)
|
||||
{
|
||||
float screenz, recipz;
|
||||
float z = RwCameraGetNearClipPlane(Scene.camera); // not done by game
|
||||
|
||||
screenz = m_f2DNearScreenZ;
|
||||
recipz = m_fRecipNearClipPlane;
|
||||
|
@ -267,6 +267,7 @@ CSprite2d::SetVertices(float x1, float y1, float x2, float y2, float x3, float y
|
||||
const CRGBA &c0, const CRGBA &c1, const CRGBA &c2, const CRGBA &c3)
|
||||
{
|
||||
float screenz, recipz;
|
||||
float z = RwCameraGetNearClipPlane(Scene.camera); // not done by game
|
||||
|
||||
screenz = RwIm2DGetNearScreenZ();
|
||||
recipz = RecipNearClip;
|
||||
@ -312,10 +313,11 @@ void
|
||||
CSprite2d::SetVertices(int n, float *positions, float *uvs, const CRGBA &col)
|
||||
{
|
||||
int i;
|
||||
float screenz, recipz;
|
||||
float screenz, recipz, z;
|
||||
|
||||
screenz = RwIm2DGetNearScreenZ();
|
||||
recipz = RecipNearClip;
|
||||
z = RwCameraGetNearClipPlane(Scene.camera); // not done by game
|
||||
|
||||
|
||||
for(i = 0; i < n; i++){
|
||||
@ -334,10 +336,11 @@ void
|
||||
CSprite2d::SetMaskVertices(int n, float *positions)
|
||||
{
|
||||
int i;
|
||||
float screenz, recipz;
|
||||
float screenz, recipz, z;
|
||||
|
||||
screenz = RwIm2DGetNearScreenZ();
|
||||
recipz = RecipNearClip;
|
||||
z = RwCameraGetNearClipPlane(Scene.camera); // not done by game
|
||||
|
||||
for(i = 0; i < n; i++){
|
||||
RwIm2DVertexSetScreenX(&maVertices[i], positions[i*2 + 0]);
|
||||
@ -345,7 +348,7 @@ CSprite2d::SetMaskVertices(int n, float *positions)
|
||||
RwIm2DVertexSetScreenZ(&maVertices[i], screenz);
|
||||
RwIm2DVertexSetCameraZ(&maVertices[i], z);
|
||||
RwIm2DVertexSetRecipCameraZ(&maVertices[i], recipz);
|
||||
RwIm2DVertexSetIntRGBA(&maVertices[i], 0, 0, 0, 0);
|
||||
RwIm2DVertexSetIntRGBA(&maVertices[i], 255, 255, 255, 255); // 0, 0, 0, 0 on PC
|
||||
}
|
||||
}
|
||||
|
||||
@ -353,10 +356,11 @@ void
|
||||
CSprite2d::SetVertices(RwIm2DVertex *verts, const CRect &r, const CRGBA &c0, const CRGBA &c1, const CRGBA &c2, const CRGBA &c3,
|
||||
float u0, float v0, float u1, float v1, float u3, float v3, float u2, float v2)
|
||||
{
|
||||
float screenz, recipz;
|
||||
float screenz, recipz, z;
|
||||
|
||||
screenz = RwIm2DGetNearScreenZ();
|
||||
recipz = RecipNearClip;
|
||||
z = RwCameraGetNearClipPlane(Scene.camera); // not done by game
|
||||
|
||||
RwIm2DVertexSetScreenX(&verts[0], r.left);
|
||||
RwIm2DVertexSetScreenY(&verts[0], r.top);
|
||||
|
@ -117,7 +117,7 @@ CVisibilityPlugins::SetRenderWareCamera(RwCamera *camera)
|
||||
RpMaterial*
|
||||
SetAlphaCB(RpMaterial *material, void *data)
|
||||
{
|
||||
material->color.alpha = (uint8)(uint32)data;
|
||||
((RwRGBA*)RpMaterialGetColor(material))->alpha = (uint8)(uint32)data;
|
||||
return material;
|
||||
}
|
||||
|
||||
|
@ -182,17 +182,17 @@ CAutomobile::CAutomobile(int32 id, uint8 CreatedBy)
|
||||
m_weaponDoorTimerRight = m_weaponDoorTimerLeft;
|
||||
|
||||
if(GetModelIndex() == MI_DODO){
|
||||
RpAtomicSetFlags(GetFirstObject(m_aCarNodes[CAR_WHEEL_LF]), 0);
|
||||
RpAtomicSetFlags((RpAtomic*)GetFirstObject(m_aCarNodes[CAR_WHEEL_LF]), 0);
|
||||
CMatrix mat1;
|
||||
mat1.Attach(RwFrameGetMatrix(m_aCarNodes[CAR_WHEEL_RF]));
|
||||
CMatrix mat2(RwFrameGetMatrix(m_aCarNodes[CAR_WHEEL_LF]));
|
||||
mat1.GetPosition() += CVector(mat2.GetPosition().x + 0.1f, 0.0f, mat2.GetPosition().z);
|
||||
mat1.UpdateRW();
|
||||
}else if(GetModelIndex() == MI_MIAMI_SPARROW || GetModelIndex() == MI_MIAMI_RCRAIDER){
|
||||
RpAtomicSetFlags(GetFirstObject(m_aCarNodes[CAR_WHEEL_LF]), 0);
|
||||
RpAtomicSetFlags(GetFirstObject(m_aCarNodes[CAR_WHEEL_RF]), 0);
|
||||
RpAtomicSetFlags(GetFirstObject(m_aCarNodes[CAR_WHEEL_LB]), 0);
|
||||
RpAtomicSetFlags(GetFirstObject(m_aCarNodes[CAR_WHEEL_RB]), 0);
|
||||
RpAtomicSetFlags((RpAtomic*)GetFirstObject(m_aCarNodes[CAR_WHEEL_LF]), 0);
|
||||
RpAtomicSetFlags((RpAtomic*)GetFirstObject(m_aCarNodes[CAR_WHEEL_RF]), 0);
|
||||
RpAtomicSetFlags((RpAtomic*)GetFirstObject(m_aCarNodes[CAR_WHEEL_LB]), 0);
|
||||
RpAtomicSetFlags((RpAtomic*)GetFirstObject(m_aCarNodes[CAR_WHEEL_RB]), 0);
|
||||
}else if(GetModelIndex() == MI_RHINO){
|
||||
bExplosionProof = true;
|
||||
bBulletProof = true;
|
||||
|
@ -94,7 +94,7 @@ CBoat::GetComponentWorldPosition(int32 component, CVector &pos)
|
||||
pos = *RwMatrixGetPos(RwFrameGetLTM(m_aBoatNodes[component]));
|
||||
}
|
||||
|
||||
RxObjSpace3DVertex KeepWaterOutVertices[4];
|
||||
RwIm3DVertex KeepWaterOutVertices[4];
|
||||
RwImVertexIndex KeepWaterOutIndices[6];
|
||||
|
||||
void
|
||||
@ -103,7 +103,7 @@ CBoat::Render()
|
||||
CMatrix matrix;
|
||||
|
||||
if (m_aBoatNodes[1] != nil) {
|
||||
matrix.Attach(&m_aBoatNodes[1]->modelling);
|
||||
matrix.Attach(RwFrameGetMatrix(m_aBoatNodes[1]));
|
||||
|
||||
CVector pos = matrix.GetPosition();
|
||||
matrix.SetRotateZ(m_fMovingHiRotation);
|
||||
@ -111,7 +111,7 @@ CBoat::Render()
|
||||
|
||||
matrix.UpdateRW();
|
||||
if (CVehicle::bWheelsOnlyCheat) {
|
||||
RpAtomicRenderMacro((RpAtomic*)GetFirstObject(m_aBoatNodes[1]));
|
||||
RpAtomicRender((RpAtomic*)GetFirstObject(m_aBoatNodes[1]));
|
||||
}
|
||||
}
|
||||
m_fMovingHiRotation += 0.05f;
|
||||
@ -130,47 +130,23 @@ CBoat::Render()
|
||||
KeepWaterOutIndices[5] = 3;
|
||||
switch (GetModelIndex()) {
|
||||
case MI_SPEEDER:
|
||||
KeepWaterOutVertices[0].objVertex.x = -1.15f;
|
||||
KeepWaterOutVertices[0].objVertex.y = 3.61f;
|
||||
KeepWaterOutVertices[0].objVertex.z = 1.03f;
|
||||
KeepWaterOutVertices[1].objVertex.x = 1.15f;
|
||||
KeepWaterOutVertices[1].objVertex.y = 3.61f;
|
||||
KeepWaterOutVertices[1].objVertex.z = 1.03f;
|
||||
KeepWaterOutVertices[2].objVertex.x = -1.15f;
|
||||
KeepWaterOutVertices[2].objVertex.y = 0.06f;
|
||||
KeepWaterOutVertices[2].objVertex.z = 1.03f;
|
||||
KeepWaterOutVertices[3].objVertex.x = 1.15f;
|
||||
KeepWaterOutVertices[3].objVertex.y = 0.06f;
|
||||
KeepWaterOutVertices[3].objVertex.z = 1.03f;
|
||||
RwIm3DVertexSetPos(&KeepWaterOutVertices[0], -1.15f, 3.61f, 1.03f);
|
||||
RwIm3DVertexSetPos(&KeepWaterOutVertices[1], 1.15f, 3.61f, 1.03f);
|
||||
RwIm3DVertexSetPos(&KeepWaterOutVertices[2], -1.15f, 0.06f, 1.03f);
|
||||
RwIm3DVertexSetPos(&KeepWaterOutVertices[3], 1.15f, 0.06f, 1.03f);
|
||||
break;
|
||||
case MI_REEFER:
|
||||
KeepWaterOutVertices[2].objVertex.x = -1.9f;
|
||||
KeepWaterOutVertices[2].objVertex.y = 2.83f;
|
||||
KeepWaterOutVertices[2].objVertex.z = 1.0f;
|
||||
KeepWaterOutVertices[3].objVertex.x = 1.9f;
|
||||
KeepWaterOutVertices[3].objVertex.y = 2.83f;
|
||||
KeepWaterOutVertices[3].objVertex.z = 1.0f;
|
||||
KeepWaterOutVertices[0].objVertex.x = -1.66f;
|
||||
KeepWaterOutVertices[0].objVertex.y = -4.48f;
|
||||
KeepWaterOutVertices[0].objVertex.z = 0.83f;
|
||||
KeepWaterOutVertices[1].objVertex.x = 1.66f;
|
||||
KeepWaterOutVertices[1].objVertex.y = -4.48f;
|
||||
KeepWaterOutVertices[1].objVertex.z = 0.83f;
|
||||
RwIm3DVertexSetPos(&KeepWaterOutVertices[0], -1.9f, 2.83f, 1.0f);
|
||||
RwIm3DVertexSetPos(&KeepWaterOutVertices[1], 1.9f, 2.83f, 1.0f);
|
||||
RwIm3DVertexSetPos(&KeepWaterOutVertices[2], -1.66f, -4.48f, 0.83f);
|
||||
RwIm3DVertexSetPos(&KeepWaterOutVertices[3], 1.66f, -4.48f, 0.83f);
|
||||
break;
|
||||
case MI_PREDATOR:
|
||||
default:
|
||||
KeepWaterOutVertices[0].objVertex.x = -1.45f;
|
||||
KeepWaterOutVertices[0].objVertex.y = 1.9f;
|
||||
KeepWaterOutVertices[0].objVertex.z = 0.96f;
|
||||
KeepWaterOutVertices[1].objVertex.x = 1.45f;
|
||||
KeepWaterOutVertices[1].objVertex.y = 1.9f;
|
||||
KeepWaterOutVertices[1].objVertex.z = 0.96f;
|
||||
KeepWaterOutVertices[2].objVertex.x = -1.45f;
|
||||
KeepWaterOutVertices[2].objVertex.y = -3.75f;
|
||||
KeepWaterOutVertices[2].objVertex.z = 0.96f;
|
||||
KeepWaterOutVertices[3].objVertex.x = 1.45f;
|
||||
KeepWaterOutVertices[3].objVertex.y = -3.75f;
|
||||
KeepWaterOutVertices[3].objVertex.z = 0.96f;
|
||||
RwIm3DVertexSetPos(&KeepWaterOutVertices[0], -1.45f, 1.9f, 0.96f);
|
||||
RwIm3DVertexSetPos(&KeepWaterOutVertices[1], 1.45f, 1.9f, 0.96f);
|
||||
RwIm3DVertexSetPos(&KeepWaterOutVertices[2], -1.45f, -3.75f, 0.96f);
|
||||
RwIm3DVertexSetPos(&KeepWaterOutVertices[3], 1.45f, -3.75f, 0.96f);
|
||||
break;
|
||||
}
|
||||
KeepWaterOutVertices[0].u = 0.0f;
|
||||
|
Loading…
Reference in New Issue
Block a user