First batch of fixes (CallAndMessage)
This commit is contained in:
parent
5de4e88d7a
commit
7a3b80a9b7
@ -814,6 +814,9 @@ void
|
||||
CPickups::RenderPickUpText()
|
||||
{
|
||||
wchar *strToPrint;
|
||||
#ifdef FIX_BUGS
|
||||
strToPrint = nil;
|
||||
#endif
|
||||
for (int32 i = 0; i < NumMessages; i++) {
|
||||
if (aMessages[i].m_quantity <= 39) {
|
||||
switch (aMessages[i].m_quantity) // could use some enum maybe
|
||||
@ -1285,7 +1288,11 @@ CPacManPickups::GeneratePMPickUpsForRace(int32 race)
|
||||
int i = 0;
|
||||
|
||||
if (race == 0) pPos = aRacePoints1; // there's only one available
|
||||
assert(pPos != nil);
|
||||
|
||||
if(!pPos) {
|
||||
debug("This shouldn't happen");
|
||||
return;
|
||||
}
|
||||
|
||||
while (!pPos->IsZero()) {
|
||||
while (aPMPickUps[i].m_eType != PACMAN_NONE)
|
||||
|
@ -3439,8 +3439,13 @@ int8 CRunningScript::ProcessCommands100To199(int32 command)
|
||||
}
|
||||
else {
|
||||
CVehicle* car;
|
||||
if (!CModelInfo::IsBikeModel(ScriptParams[0]))
|
||||
car = new CAutomobile(ScriptParams[0], MISSION_VEHICLE);
|
||||
if(!CModelInfo::IsBikeModel(ScriptParams[0])) car = new CAutomobile(ScriptParams[0], MISSION_VEHICLE);
|
||||
#ifdef FIX_BUGS
|
||||
else {
|
||||
debug("This shouldn't happen");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
CVector pos = *(CVector*)&ScriptParams[1];
|
||||
if (pos.z <= MAP_Z_LOW_LIMIT)
|
||||
pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y);
|
||||
|
@ -1817,8 +1817,13 @@ int8 CRunningScript::ProcessCommands900To999(int32 command)
|
||||
if (model == -1)
|
||||
return 0;
|
||||
CVehicle* car;
|
||||
if (!CModelInfo::IsBikeModel(model))
|
||||
car = new CAutomobile(model, RANDOM_VEHICLE);
|
||||
if(!CModelInfo::IsBikeModel(model)) car = new CAutomobile(model, RANDOM_VEHICLE);
|
||||
#ifdef FIX_BUGS
|
||||
else {
|
||||
debug("This shouldn't happen");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
CVector pos = *(CVector*)&ScriptParams[0];
|
||||
pos.z += car->GetDistanceFromCentreOfMassToBaseOfModel();
|
||||
car->SetPosition(pos);
|
||||
|
@ -971,8 +971,10 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command)
|
||||
pClosestEntity = apEntities[i];
|
||||
}
|
||||
}
|
||||
if (pClosestEntity->IsDummy())
|
||||
pClosestEntity = nil;
|
||||
#ifdef FIX_BUGS
|
||||
if(pClosestEntity)
|
||||
#endif
|
||||
if(pClosestEntity->IsDummy()) pClosestEntity = nil;
|
||||
}
|
||||
if (pClosestEntity) {
|
||||
script_assert(pClosestEntity->IsObject());
|
||||
|
@ -1699,10 +1699,12 @@ CCamera::CamControl(void)
|
||||
Cams[ActiveCam].CamTargetEntity = pTargetEntity;
|
||||
|
||||
// Ped visibility
|
||||
if((Cams[ActiveCam].Mode == CCam::MODE_1STPERSON ||
|
||||
Cams[ActiveCam].Mode == CCam::MODE_SNIPER ||
|
||||
Cams[ActiveCam].Mode == CCam::MODE_M16_1STPERSON ||
|
||||
Cams[ActiveCam].Mode == CCam::MODE_ROCKETLAUNCHER) && pTargetEntity->IsPed() ||
|
||||
if(((Cams[ActiveCam].Mode == CCam::MODE_1STPERSON || Cams[ActiveCam].Mode == CCam::MODE_SNIPER || Cams[ActiveCam].Mode == CCam::MODE_M16_1STPERSON ||
|
||||
Cams[ActiveCam].Mode == CCam::MODE_ROCKETLAUNCHER) &&
|
||||
#ifdef FIX_BUGS
|
||||
pTargetEntity &&
|
||||
#endif
|
||||
pTargetEntity->IsPed()) ||
|
||||
Cams[ActiveCam].Mode == CCam::MODE_FLYBY)
|
||||
FindPlayerPed()->bIsVisible = false;
|
||||
else
|
||||
@ -1754,14 +1756,15 @@ CCamera::UpdateTargetEntity(void)
|
||||
PLAYER->m_pMyVehicle &&
|
||||
PLAYER->m_pMyVehicle->CanPedOpenLocks(PLAYER))
|
||||
cantOpen = false;
|
||||
|
||||
if(PLAYER->GetPedState() == PED_ENTER_CAR && !cantOpen){
|
||||
if(!enteringCar && CarZoomIndicator != CAM_ZOOM_1STPRS){
|
||||
pTargetEntity = PLAYER->m_pMyVehicle;
|
||||
if(PLAYER->m_pMyVehicle == nil)
|
||||
pTargetEntity = PLAYER;
|
||||
#ifdef FIX_BUGS
|
||||
if(PLAYER)
|
||||
#endif
|
||||
if(PLAYER->GetPedState() == PED_ENTER_CAR && !cantOpen) {
|
||||
if(!enteringCar && CarZoomIndicator != CAM_ZOOM_1STPRS) {
|
||||
pTargetEntity = PLAYER->m_pMyVehicle;
|
||||
if(PLAYER->m_pMyVehicle == nil) pTargetEntity = PLAYER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if((PLAYER->GetPedState() == PED_CARJACK || PLAYER->GetPedState() == PED_OPEN_DOOR) && !cantOpen){
|
||||
if(!enteringCar && CarZoomIndicator != CAM_ZOOM_1STPRS)
|
||||
|
@ -1090,6 +1090,9 @@ CFileLoader::LoadObject(const char *line)
|
||||
char model[24], txd[24];
|
||||
float dist[3];
|
||||
uint32 flags;
|
||||
#ifdef FIX_BUGS
|
||||
flags = 0;
|
||||
#endif
|
||||
int damaged;
|
||||
CSimpleModelInfo *mi;
|
||||
|
||||
@ -1186,6 +1189,9 @@ CFileLoader::LoadTimeObject(const char *line)
|
||||
char model[24], txd[24];
|
||||
float dist[3];
|
||||
uint32 flags;
|
||||
#ifdef FIX_BUGS
|
||||
flags = 0;
|
||||
#endif
|
||||
int timeOn, timeOff;
|
||||
int damaged;
|
||||
CTimeModelInfo *mi, *other;
|
||||
@ -1790,6 +1796,9 @@ CFileLoader::ReloadObject(const char *line)
|
||||
char model[24], txd[24];
|
||||
float dist[3];
|
||||
uint32 flags;
|
||||
#ifdef FIX_BUGS
|
||||
flags = 0;
|
||||
#endif
|
||||
CSimpleModelInfo *mi;
|
||||
|
||||
if(sscanf(line, "%d %s %s %d", &id, model, txd, &numObjs) != 4)
|
||||
|
@ -144,8 +144,11 @@ INITSAVEBUF
|
||||
pVehicle = new(slot) CBoat(model, RANDOM_VEHICLE);
|
||||
else if (type == VEHICLE_TYPE_CAR)
|
||||
pVehicle = new(slot) CAutomobile(model, RANDOM_VEHICLE);
|
||||
else
|
||||
else {
|
||||
assert(0);
|
||||
debug("This shouldn't happen");
|
||||
return;
|
||||
}
|
||||
--CCarCtrl::NumRandomCars;
|
||||
pVehicle->Load(buf);
|
||||
CWorld::Add(pVehicle);
|
||||
@ -518,8 +521,11 @@ INITSAVEBUF
|
||||
|
||||
if (pedtype == PEDTYPE_PLAYER1)
|
||||
pPed = new(ref) CPlayerPed();
|
||||
else
|
||||
else {
|
||||
assert(0);
|
||||
debug("This shouldn't happen");
|
||||
return;
|
||||
}
|
||||
|
||||
pPed->Load(buf);
|
||||
if (pedtype == PEDTYPE_PLAYER1) {
|
||||
|
@ -404,6 +404,9 @@ void CRadar::Draw3dMarkers()
|
||||
case BLIP_CHAR:
|
||||
{
|
||||
CEntity *entity = CPools::GetPedPool()->GetAt(ms_RadarTrace[i].m_nEntityHandle);
|
||||
#ifdef FIX_BUGS
|
||||
if(!entity) break;
|
||||
#endif
|
||||
if (entity != nil) {
|
||||
if (((CPed*)entity)->InVehicle())
|
||||
entity = ((CPed * )entity)->m_pMyVehicle;
|
||||
|
@ -504,6 +504,9 @@ CEntity::Add(void)
|
||||
case ENTITY_TYPE_DUMMY:
|
||||
list = &s->m_lists[ENTITYLIST_DUMMIES_OVERLAP];
|
||||
break;
|
||||
#ifdef FIX_BUGS
|
||||
default: debug("This shouldn't happen"); return;
|
||||
#endif
|
||||
}
|
||||
list->InsertItem(this);
|
||||
}
|
||||
@ -564,6 +567,9 @@ CEntity::Remove(void)
|
||||
case ENTITY_TYPE_DUMMY:
|
||||
list = &s->m_lists[ENTITYLIST_DUMMIES_OVERLAP];
|
||||
break;
|
||||
#ifdef FIX_BUGS
|
||||
default: debug("This shouldn't happen"); return;
|
||||
#endif
|
||||
}
|
||||
list->RemoveItem(this);
|
||||
}
|
||||
|
@ -126,6 +126,8 @@ CPhysical::Add(void)
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
debug("This shouldn't happen");
|
||||
return;
|
||||
}
|
||||
CPtrNode *node = list->InsertItem(this);
|
||||
assert(node);
|
||||
@ -191,17 +193,20 @@ CPhysical::RemoveAndAdd(void)
|
||||
list = &s->m_lists[ENTITYLIST_OBJECTS_OVERLAP];
|
||||
break;
|
||||
}
|
||||
if(next){
|
||||
// If we still have old nodes, use them
|
||||
next->list->RemoveNode(next->listnode);
|
||||
list->InsertNode(next->listnode);
|
||||
next->list = list;
|
||||
next->sector = s;
|
||||
next = next->next;
|
||||
}else{
|
||||
CPtrNode *node = list->InsertItem(this);
|
||||
m_entryInfoList.InsertItem(list, node, s);
|
||||
}
|
||||
#ifdef FIX_BUGS
|
||||
if(list)
|
||||
#endif
|
||||
if(next) {
|
||||
// If we still have old nodes, use them
|
||||
next->list->RemoveNode(next->listnode);
|
||||
list->InsertNode(next->listnode);
|
||||
next->list = list;
|
||||
next->sector = s;
|
||||
next = next->next;
|
||||
} else {
|
||||
CPtrNode *node = list->InsertItem(this);
|
||||
m_entryInfoList.InsertItem(list, node, s);
|
||||
}
|
||||
}
|
||||
|
||||
// Remove old nodes we no longer need
|
||||
|
@ -4348,13 +4348,15 @@ CPed::PedSetDraggedOutCarCB(CAnimBlendAssociation *dragAssoc, void *arg)
|
||||
}
|
||||
#endif
|
||||
|
||||
if (quickJackedAssoc) {
|
||||
dragAssoc->SetDeleteCallback(PedSetQuickDraggedOutCarPositionCB, ped);
|
||||
} else {
|
||||
dragAssoc->SetDeleteCallback(PedSetDraggedOutCarPositionCB, ped);
|
||||
if (ped->CanSetPedState())
|
||||
CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_GETUP1, 1000.0f);
|
||||
}
|
||||
#ifdef FIX_BUGS
|
||||
if(dragAssoc)
|
||||
#endif
|
||||
if(quickJackedAssoc) {
|
||||
dragAssoc->SetDeleteCallback(PedSetQuickDraggedOutCarPositionCB, ped);
|
||||
} else {
|
||||
dragAssoc->SetDeleteCallback(PedSetDraggedOutCarPositionCB, ped);
|
||||
if(ped->CanSetPedState()) CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_GETUP1, 1000.0f);
|
||||
}
|
||||
|
||||
ped->ReplaceWeaponWhenExitingVehicle();
|
||||
|
||||
|
@ -2244,6 +2244,9 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg)
|
||||
enterDoor = DOOR_REAR_LEFT;
|
||||
break;
|
||||
default:
|
||||
#ifdef FIX_BUGS
|
||||
enterDoor = DOOR_BONNET;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2356,7 +2359,7 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg)
|
||||
case CAR_DOOR_RR: door = DOOR_REAR_RIGHT; pedInSeat = veh->pPassengers[2]; break;
|
||||
case CAR_DOOR_LF: door = DOOR_FRONT_LEFT; pedInSeat = veh->pDriver; break;
|
||||
case CAR_DOOR_LR: door = DOOR_REAR_LEFT; pedInSeat = veh->pPassengers[1]; break;
|
||||
default: assert(0);
|
||||
default: assert(0); debug("This shouldn't happen"); return;
|
||||
}
|
||||
|
||||
if (ped->m_fHealth == 0.0f || CPad::GetPad(0)->ArePlayerControlsDisabled() && pedInSeat && pedInSeat->IsPlayer()) {
|
||||
@ -2554,6 +2557,9 @@ CPed::PedAnimPullPedOutCB(CAnimBlendAssociation* animAssoc, void* arg)
|
||||
case PEDTYPE_PLAYER4:
|
||||
padNo = 3;
|
||||
break;
|
||||
default:
|
||||
padNo = 0;
|
||||
break;
|
||||
}
|
||||
CPad *pad = CPad::GetPad(padNo);
|
||||
|
||||
@ -2657,6 +2663,9 @@ CPed::PedAnimGetInCB(CAnimBlendAssociation *animAssoc, void *arg)
|
||||
enterDoor = DOOR_REAR_LEFT;
|
||||
break;
|
||||
default:
|
||||
#ifdef FIX_BUGS
|
||||
enterDoor = DOOR_BONNET;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
if (!veh->IsDoorMissing(enterDoor)) {
|
||||
@ -2752,12 +2761,15 @@ CPed::PedAnimDoorCloseCB(CAnimBlendAssociation *animAssoc, void *arg)
|
||||
veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_CAR_CLOSEDOOR_LHS, 1.0f);
|
||||
|
||||
eDoors door;
|
||||
switch (ped->m_vehDoor) {
|
||||
case CAR_DOOR_RF: door = DOOR_FRONT_RIGHT; break;
|
||||
case CAR_DOOR_RR: door = DOOR_REAR_RIGHT; break;
|
||||
case CAR_DOOR_LF: door = DOOR_FRONT_LEFT; break;
|
||||
case CAR_DOOR_LR: door = DOOR_REAR_LEFT; break;
|
||||
default: assert(0);
|
||||
switch(ped->m_vehDoor) {
|
||||
case CAR_DOOR_RF: door = DOOR_FRONT_RIGHT; break;
|
||||
case CAR_DOOR_RR: door = DOOR_REAR_RIGHT; break;
|
||||
case CAR_DOOR_LF: door = DOOR_FRONT_LEFT; break;
|
||||
case CAR_DOOR_LR: door = DOOR_REAR_LEFT; break;
|
||||
default:
|
||||
assert(0);
|
||||
debug("This shouldn't happen");
|
||||
return;
|
||||
}
|
||||
|
||||
if (veh->Damage.GetDoorStatus(door) == DOOR_STATUS_SWINGING)
|
||||
@ -2926,6 +2938,9 @@ CPed::PedAnimStepOutCarCB(CAnimBlendAssociation* animAssoc, void* arg)
|
||||
door = DOOR_REAR_LEFT;
|
||||
break;
|
||||
default:
|
||||
#ifdef FIX_BUGS
|
||||
door = DOOR_BONNET;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
bool closeDoor = !veh->IsDoorMissing(door);
|
||||
@ -2947,6 +2962,12 @@ CPed::PedAnimStepOutCarCB(CAnimBlendAssociation* animAssoc, void* arg)
|
||||
case PEDTYPE_PLAYER4:
|
||||
padNo = 3;
|
||||
break;
|
||||
default:
|
||||
#ifdef FIX_BUGS
|
||||
padNo = 0;
|
||||
debug("This shouldn't happen");
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
CPad* pad = CPad::GetPad(padNo);
|
||||
bool engineIsIntact = veh->IsCar() && ((CAutomobile*)veh)->Damage.GetEngineStatus() >= 225;
|
||||
@ -3285,6 +3306,9 @@ CPed::SetCarJack(CVehicle* car)
|
||||
{
|
||||
uint8 doorFlag;
|
||||
eDoors door;
|
||||
#ifdef FIX_BUGS
|
||||
door = DOOR_BONNET;
|
||||
#endif
|
||||
CPed *pedInSeat = nil;
|
||||
|
||||
if (car->IsBoat())
|
||||
@ -3440,8 +3464,10 @@ CPed::BeingDraggedFromCar(void)
|
||||
|
||||
if (!dontRunAnim)
|
||||
m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, enterAnim);
|
||||
|
||||
m_pVehicleAnim->SetFinishCallback(PedSetDraggedOutCarCB, this);
|
||||
#ifdef FIX_BUGS
|
||||
if(m_pVehicleAnim)
|
||||
#endif
|
||||
m_pVehicleAnim->SetFinishCallback(PedSetDraggedOutCarCB, this);
|
||||
lineUpType = LINE_UP_TO_CAR_START;
|
||||
} else if (m_pVehicleAnim->currentTime <= 1.4f) {
|
||||
m_vecMoveSpeed = CVector(0.0f, 0.0f, 0.0f);
|
||||
|
@ -745,6 +745,9 @@ CWaterLevel::RenderWater()
|
||||
if ( fHugeSectorDistToCamSqr >= SQR(500.0f) /*fHugeSectorNearDist*/ )
|
||||
{
|
||||
float fZ;
|
||||
#ifdef FIX_BUGS
|
||||
fZ = 0.f;
|
||||
#endif
|
||||
|
||||
if ( aWaterBlockList[2*x+0][2*y+0] >= 0 )
|
||||
fZ = ms_aWaterZs[ aWaterBlockList[2*x+0][2*y+0] ];
|
||||
|
@ -251,6 +251,9 @@ GenericLoad()
|
||||
uint8 *buf;
|
||||
int32 file;
|
||||
uint32 size;
|
||||
#ifdef FIX_BUGS
|
||||
size = 0;
|
||||
#endif
|
||||
#ifdef MISSION_REPLAY
|
||||
int8 qs;
|
||||
#endif
|
||||
|
@ -100,7 +100,12 @@ void CCarGenerator::DoInternalProcessing()
|
||||
// So game crashes if it's bike :D
|
||||
if (((CVehicleModelInfo*)CModelInfo::GetModelInfo(m_nModelIndex))->m_vehicleType != VEHICLE_TYPE_BIKE)
|
||||
pCar = new CAutomobile(m_nModelIndex, PARKED_VEHICLE);
|
||||
|
||||
#ifdef FIX_BUGS
|
||||
else {
|
||||
debug("This shouldn't happen");
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
pCar->SetIsStatic(false);
|
||||
pCar->bEngineOn = false;
|
||||
pos.z += pCar->GetDistanceFromCentreOfMassToBaseOfModel();
|
||||
|
Loading…
Reference in New Issue
Block a user