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