First batch of fixes (CallAndMessage)

This commit is contained in:
Filip Gawin
2021-01-31 20:44:39 +01:00
parent 5de4e88d7a
commit 7a3b80a9b7
15 changed files with 139 additions and 49 deletions

View File

@ -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)

View File

@ -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);

View File

@ -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);

View File

@ -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());