mirror of
https://github.com/GTAmodding/re3.git
synced 2025-07-12 14:24:09 +00:00
basic bike support in traffic, script and car gen; some heli AI
This commit is contained in:
parent
647fd951ec
commit
d325a3d247
4 changed files with 143 additions and 53 deletions
|
@ -4,6 +4,7 @@
|
|||
#include "ScriptCommands.h"
|
||||
|
||||
#include "AnimBlendAssociation.h"
|
||||
#include "Bike.h"
|
||||
#include "Boat.h"
|
||||
#include "BulletInfo.h"
|
||||
#include "Camera.h"
|
||||
|
@ -2189,9 +2190,12 @@ int8 CRunningScript::ProcessCommands100To199(int32 command)
|
|||
else {
|
||||
CVehicle* car;
|
||||
|
||||
// TODO(MIAMI)
|
||||
//if (!CModelInfo::IsBikeModel(ScriptParams[0]))
|
||||
car = new CAutomobile(ScriptParams[0], MISSION_VEHICLE);
|
||||
if (!CModelInfo::IsBikeModel(ScriptParams[0]))
|
||||
car = new CAutomobile(ScriptParams[0], MISSION_VEHICLE);
|
||||
else {
|
||||
car = new CBike(ScriptParams[0], MISSION_VEHICLE);
|
||||
((CBike*)(car))->bIsStanding = true;
|
||||
}
|
||||
CVector pos = *(CVector*)&ScriptParams[1];
|
||||
if (pos.z <= MAP_Z_LOW_LIMIT)
|
||||
pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y);
|
||||
|
@ -7406,7 +7410,13 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
|
|||
if (pPed->GetPedState() == PED_EXIT_CAR || pPed->GetPedState() == PED_DRAG_FROM_CAR) {
|
||||
uint8 flags = 0;
|
||||
if (pPed->m_pMyVehicle->IsBike()) {
|
||||
//TODO(MIAMI)
|
||||
if (pPed->m_vehEnterType == CAR_DOOR_LF ||
|
||||
pPed->m_vehEnterType == CAR_DOOR_RF ||
|
||||
pPed->m_vehEnterType == CAR_WINDSCREEN)
|
||||
flags = CAR_DOOR_FLAG_LF | CAR_DOOR_FLAG_RF;
|
||||
else if (pPed->m_vehEnterType == CAR_DOOR_LR ||
|
||||
pPed->m_vehEnterType == CAR_DOOR_RR)
|
||||
flags = CAR_DOOR_FLAG_LR | CAR_DOOR_FLAG_RR;
|
||||
}
|
||||
else {
|
||||
switch (pPed->m_vehEnterType) {
|
||||
|
@ -8046,7 +8056,8 @@ int8 CRunningScript::ProcessCommands900To999(int32 command)
|
|||
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]);
|
||||
assert(pVehicle);
|
||||
if (pVehicle->IsBike()) {
|
||||
//TODO(MIAMI)
|
||||
CBike* pBike = (CBike*)pBike;
|
||||
pBike->bWaterTight = ScriptParams[1] != 0;
|
||||
}
|
||||
else if (pVehicle->IsCar()) {
|
||||
CAutomobile* pCar = (CAutomobile*)pVehicle;
|
||||
|
@ -8542,8 +8553,12 @@ int8 CRunningScript::ProcessCommands900To999(int32 command)
|
|||
if (model == -1)
|
||||
return 0;
|
||||
CVehicle* car;
|
||||
//if (CModelInfo::IsBikeModel(model)) // TODO(MIAMI)
|
||||
car = new CAutomobile(model, MISSION_VEHICLE);
|
||||
if (CModelInfo::IsBikeModel(model)) {
|
||||
car = new CBike(model, MISSION_VEHICLE);
|
||||
((CBike*)(car))->bIsStanding = true;
|
||||
}
|
||||
else
|
||||
car = new CAutomobile(model, MISSION_VEHICLE);
|
||||
CVector pos = *(CVector*)&ScriptParams[0];
|
||||
pos.z += car->GetDistanceFromCentreOfMassToBaseOfModel();
|
||||
car->SetPosition(pos);
|
||||
|
@ -9248,8 +9263,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command)
|
|||
if (pVehicle->m_vehType == VEHICLE_TYPE_CAR)
|
||||
((CAutomobile*)pVehicle)->m_fTraction = fTraction;
|
||||
else
|
||||
// TODO(MIAMI)
|
||||
//((CBike*)pVehicle)->m_fTraction = fTraction;
|
||||
((CBike*)pVehicle)->m_fTraction = fTraction;
|
||||
return 0;
|
||||
}
|
||||
case COMMAND_ARE_MEASUREMENTS_IN_METRES:
|
||||
|
@ -10337,8 +10351,21 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command)
|
|||
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]);
|
||||
assert(pVehicle);
|
||||
bool bIsBurst = false;
|
||||
CBike* pBike = (CBike*)pVehicle;
|
||||
if (pVehicle->m_vehType == VEHICLE_APPEARANCE_BIKE) {
|
||||
assert("IS_CAR_TYPE_BURST not yet implemented for bikes");
|
||||
if (ScriptParams[1] == 4) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (pBike->m_wheelStatus[i] == WHEEL_STATUS_BURST)
|
||||
bIsBurst = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (ScriptParams[1] == 2)
|
||||
ScriptParams[1] = 0;
|
||||
if (ScriptParams[1] == 3)
|
||||
ScriptParams[1] = 1;
|
||||
bIsBurst = pBike->m_wheelStatus[ScriptParams[1]] == WHEEL_STATUS_BURST;
|
||||
}
|
||||
}
|
||||
else {
|
||||
CAutomobile* pCar = (CAutomobile*)pVehicle;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue