Jump to content

Rulerz

Members
  • Posts

    83
  • Joined

  • Last visited

Posts posted by Rulerz

  1. Init Filesystem...

    Registered FS device "local"

    Registered FS device "base"

    Registered FS device "lang"

    ?BLFileSystem::Open("C:\Users\Kevin Hayward\Desktop\England Mod\New Folder\CRACK\EM3.cfg",BLFM_READ): Could not open

    Init UpdateChain...

    Init Timer...

    Init Screen...

    Init Scriptscheduler...

    Init GFX...

    Init Vision...

    |Vision DLL path: C:\Users\Kevin Hayward\Desktop\England Mod\New Folder\CRACK\vision71.dll

    |Vision, Version PC-4, 1, 37, 0-RELEASE

    |List of loaded plug-ins:

    |Plug-in named 'CubeMapHandle_cl' loaded statically!

    |Plug-in named 'VisionConsoleEntity_cl' loaded statically!

    |Plug-in named 'VisBase_cl' loaded statically!

    |Plug-in named 'VisBaseEntity_cl' loaded statically!

    |Plug-in named 'VisMouseCamera_cl' loaded statically!

    |Plug-in named 'VisObject3D_cl' loaded statically!

    |Plug-in named 'VisActionHelperEntity_cl' loaded statically!

    |Plug-in named 'VarManager_cl' loaded statically!

    |Plug-in named 'BaseEntity_cl' loaded statically!

    |Plug-in named 'VBaseCameraEntity' loaded statically!

    |Plug-in named 'VCamEntity' loaded statically!

    |Plug-in named 'GameEntity_cl' loaded statically!

    |Plug-in named 'Emitter_cl' loaded statically!

    |Plug-in named 'BaseGameEntity_cl' loaded statically!

    |Plug-in named 'TargetEntity_cl' loaded statically!

    |Registering plug-ins done !

    |Initializing Vision Graphics Engine

    |Detecting CPU type and features

    |CPUdet: Pentium IV-class CPU detected.

    |CPUdet: FPU/x87 Support detected.

    |CPUdet: MMX Support detected.

    |CPUdet: Intel ISSE/SIMD Support enabled.

    |CPUdet: AMD 3DNow! Support detected.

    |Vision Core: Allocated 28 kB of memory for Polygon Chunks

    |Vision Core: Allocated 0 kB of memory for Model Types

    |Vision Core: Allocated 40 kB of memory for Texture Info

    |Vision Core: Allocated 11 kB of memory for Entities

    |Settings renderer configuration

    Initializing post processor 'PerceptionCore'

    * Skipping config file

    Initializing post processor 'MotionBlur'

    * Skipping config file

    Initializing post processor 'Nightvision'

    * Skipping config file

    |Initialising video driver: 0

    |Setting screen mode to x:800 / y:600 / bpp:32 / refresh:0

    |Screen Mode is fullscreen, return value: 0

    |Stencil buffer: 8 bit / ZBuffer: 24 bit

    |Re-Initializing OpenGL rendering subsystem

    |Initializing OpenGL rendering subsystem

    |Setting initial Renderer States

    |Vendor: ATI Technologies Inc.

    |Renderer: ATI Radeon HD 2400

    |Driver Version: 2.1.7412 Release

    |Found Extension GL_EXT_texture_filter_anisotropic

    |Found Extension GL_EXT_texture_lod_bias

    |Found Extension GL_ARB_multitexture

    |Found Extension GL_ARB_texture_env_dot3

    |Extension GL_ARB_texture_env_subtract not available

    |Found Extension GL_EXT_compiled_vertex_array

    |Found Extension GL_EXT_texture_edge_clamp

    |Found Extension GL_EXT_texture_env_add

    |Found Extension GL_EXT_texture_env_combine

    |Found Extension GL_EXT_texture_cube_map

    |Found Extension GL_EXT_texture_compression_s3tc

    |Found Extension GL_EXT_point_parameters

    |Extension GL_EXT_clip_volume_hint not available

    |Extension GL_EXT_vertex_weighting not available

    |Found Extension GL_EXT_separate_specular_color

    |Found Extension GL_EXT_stencil_wrap

    |Extension GL_EXT_vertex_shader not available

    |Found Extension GL_EXT_multi_draw_arrays

    |Found Extension GL_ATI_fragment_shader

    |Extension GL_ATI_pn_triangles not available

    |Extension GL_ATI_vertex_array_object not available

    |Extension GL_ATI_element_array not available

    |Extension GL_ATI_map_object_buffer not available

    |Found Extension GL_NV_texgen_reflection

    |Extension GL_NV_vertex_array_range not available

    |Extension GL_NV_vertex_array_range2 not available

    |Extension GL_NV_fence not available

    |Found Extension GL_NV_blend_square

    |Extension GL_NV_register_combiners not available

    |Extension GL_NV_register_combiners2 not available

    |Extension GL_NV_texture_env_combine4 not available

    |Extension GL_NV_texture_shader not available

    |Extension GL_NV_vertex_program not available

    |Extension GL_NV_vertex_program1_1 not available

    |Extension GL_NV_occlusion_query not available

    |Extension GL_EXT_paletted_texture not available

    |Found Extension GL_ATI_separate_stencil

    |Found Extension GL_EXT_texture_rectangle

    |Found Extension GL_ARB_depth_texture

    |Found Extension GL_ARB_shadow

    |Found Extension GL_SGIS_generate_mipmap

    |Found Extension GL_ARB_vertex_buffer_object

    |Found Extension WGL_ARB_render_texture

    |Extension WGL_NV_render_depth_texture not available

    |Extension WGL_NV_render_texture_rectangle not available

    |Found Extension WGL_ARB_pbuffer

    |Found Extension WGL_ARB_pixel_format

    |Found Extension WGL_EXT_swap_control

    |Found Extension GL_ARB_shader_objects

    |Found Extension GL_ARB_fragment_shader

    |Found Extension GL_ARB_vertex_shader

    |Found Extension GL_ARB_shading_language_100

    |NV_vertex_array_range/ATI_vertex_array_object extensions not available - switching to system memory buffer!

    |Allocated 16383kB of System Memory as fast Geometry Buffer.

    OpenGL vendor: ATI Technologies Inc.

    OpenGL renderer: ATI Radeon HD 2400

    renderer-string: ATI;RD;RDN

    Init Input...

    Registered FS device "save"

    Init GameFramework...

    Init Audio...

    Init XGUI...

    ?BLFileSystem::Open("base:/Fonts/Tahoma 11.xff",BLFM_READ): Could not open

    ?Font load failed: base:/Fonts/Tahoma 11.xff

    ?BLFileSystem::Open("base:/Fonts/Tahoma 11 bold.xff",BLFM_READ): Could not open

    ?Font load failed: base:/Fonts/Tahoma 11 bold.xff

    ?BLFileSystem::Open("base:/Fonts/Lucida Console 11.xff",BLFM_READ): Could not open

    ?Font load failed: base:/Fonts/Lucida Console 11.xff

    ?BLFileSystem::Open("base:UI/Dialogs/video.xml",BLFM_READ): Could not open

    ?BLFileSystem::Open("base:/UI/Dialogs/particle.xml",BLFM_READ): Could not open

  2. You still want?

    Here

    const int MAXVICS = 20;
    bool driverescape = false;

    int SpecialHouses = 0;
    bool FirstVehicle = true;
    bool AfterCutscene = false;
    bool HintEscapee = false;
    bool HintFires2 = false;
    bool HintDead = false;
    bool HintArrest = false;

    object Mission05 : MissionScript
    {
    GameObject AccidentCar;
    GameObject RaceCar;
    Person CrossingVictim;
    Person Victim[MAXVICS];
    Person Driver;
    GameObject Smoke_l;
    GameObject Smoke_r;
    GameObject Observer;
    GameObject White;
    GameObject CS_WheelSmoke[4];
    GameObject FashionShop;
    GameObject Sign;
    int NumVics;
    int CS_SampleRefACar;
    int CS_SampleRefRCar;
    int CS_Sliding;
    int mPhysicsTicks;

    enum
    {
    MAX_DEAD_PEOPLE = 4,
    MAX_SPECIAL_BURNT_HOUSES = 2,
    MAX_BURNT_HOUSES = 7,
    MAX_ARRESTED_PERSONS = 5,
    };

    Mission05()
    {
    }

    void Start()
    {
    GameObjectList l0 = Game::GetGameObjects();

    int j=0;
    for(int i=0; i<l0.GetNumObjects(); i++)
    {
    GameObject *obj = l0.GetObject(i);
    if (obj->GetType()==ACTOR_PERSON)
    {
    Person p = (Person*)obj;
    if(j<2)
    j++;
    else
    j = 0;
    }

    if(!AccidentCar.GetID() && obj->HasName("cs_left_car"))
    {
    AccidentCar = *obj;
    AccidentCar.SetFlag(OF_TRANSPORTABLE);
    }
    else
    if(!RaceCar.GetID() && obj->HasName("cs_right_car"))
    {
    RaceCar = *obj;
    RaceCar.SetFlag(OF_TRANSPORTABLE);
    }
    else
    if (obj->HasName("Smoke_l"))
    {
    Smoke_l = *obj;
    }
    else
    if (obj->HasName("Smoke_r"))
    {
    Smoke_r = *obj;
    }
    else
    if(!Observer.GetID() && obj->HasName("observer"))
    {
    Observer = *obj;
    //Observer.SetFlag(OF_TRANSPORTABLE);
    }
    else
    if(!White.GetID() && obj->HasName("white"))
    {
    White = *obj;
    White.SetFlag(OF_TRANSPORTABLE);
    Person p = (Person*)obj;
    White.SetEquipment(EQUIP_STARTERFLAG);
    }
    }

    PersonList pl("Victim");
    CrossingVictim = *pl.GetPerson(0);

    PersonList p1("vic1");
    Victim[0] = *(p1.GetPerson(0));
    PersonList p2("vic2");
    Victim[1] = *(p2.GetPerson(0));
    PersonList p3("vic3");
    Victim[2] = *(p3.GetPerson(0));
    PersonList p4("vic4");
    Victim[3] = *(p4.GetPerson(0));
    PersonList p5("vic5");
    Victim[4] = *(p5.GetPerson(0));
    PersonList p6("vic6");
    Victim[5] = *(p6.GetPerson(0));
    PersonList p7("vic7");
    Victim[6] = *(p7.GetPerson(0));
    PersonList p8("vic8");
    Victim[7] = *(p8.GetPerson(0));


    NumVics = 8;

    GameObjectList l2("cs_wheelsmoke");
    for (int i = 0; i < 4; i++)
    {
    CS_WheelSmoke[i] = *l2.GetObject(i);
    CS_WheelSmoke[i].Hide();
    }

    GameObjectList l3("FashionShop");
    FashionShop = *l3.GetObject(0);

    GameObjectList l4("cs_sign");
    Sign = *l4.GetObject(0);

    if(!AccidentCar.GetID())
    System::Log("AccidentCar is missing");
    if(!RaceCar.GetID())
    System::Log("RaceCar is missing");
    if(!CrossingVictim.GetID())
    System::Log("CrossingVictim is missing");
    if(!Smoke_l.GetID())
    System::Log("Gas left is missing");
    if(!Smoke_r.GetID())
    System::Log("Gas right is missing");
    if(!Observer.GetID())
    System::Log("Observer car right is missing");
    if(!White.GetID())
    System::Log("The girl with the flag is missing");

    Mission::SetCounter("ArrestedPersons",0);

    Mission::AddObjective("M05_ARREST_RACE_DRIVER");

    //Mission::StartSingleTimer("StartCutScene", 3.0f);
    }

    void RunCutScene()
    {
    for(int i = 0; i < NumVics; i++)
    {
    Victim[i].SetAnimationTime(0.0f);
    Victim[i].StopAnimation();
    }
    Audio::PlaySoundtrack("5", 0.1f);
    CS_Sliding = -1;
    Mission::StartCutScene();
    Mission::ShowBlackBars();
    float x, y, z;
    White.GetPosition(x, y, z);
    Audio::PlaySample3D("mod:/Audio/FX/misc/crowd01.wav", x, y, z);
    Camera::StartTransition("Unnamed0", 0.01f);
    }

    void OnCameraTransitionFinished()
    {
    if (Mission::IsCutSceneRunning())
    {
    White.SetAnimation("waveflag");
    Mission::StartSingleTimer("CS_RaceStart", 2.2f);
    }
    }

    void RaceStart()
    {
    for (int i = 0; i < 4; i++)
    {
    CS_WheelSmoke[i].Show();
    CS_WheelSmoke[i].StartParticleEffect();
    }

    AccidentCar.SetObjectPath("cs_left_path");
    AccidentCar.SetCurrentPathSpeed(31.0f, 0.5f);
    RaceCar.SetObjectPath("cs_right_path");
    RaceCar.SetCurrentPathSpeed(30.0f, 0.5f);
    Mission::StartSingleTimer("CS_CrossingVictimWalk", 1.2f);
    //Mission::StartSingleTimer("CS_ChangeCamera", 3.0f);

    Camera::FollowTarget(&AccidentCar, 0, 0, 0, true);

    Audio::PlaySample("mod:/Audio/FX/vehicles/tyresqueal01.wav");
    CS_SampleRefACar = Audio::PlaySample("mod:/Audio/FX/vehicles/carmotor04.wav");
    CS_SampleRefRCar = Audio::PlaySample("mod:/Audio/FX/vehicles/carmotor04.wav");
    }

    void ChangeCutSceneCamera()
    {
    Camera::SynchronizeWithPhysics();
    Camera::SetCameraToLocation("Unnamed1");
    Game::SetGameSpeed(0.7f);
    Camera::FollowTarget(&AccidentCar, 0, 0, 0, true);
    Camera::LookAtTarget(&AccidentCar, true, 100.0f, 2.0f);
    Camera::Rotate(200, 0, 0, 15.0f);
    //Audio::PlaySoundtrack("5", 1.0f);
    }

    void OnTrigger(const char *Trigger, Actor *Collider)
    {
    if (Mission::IsCutSceneRunning() && Trigger == "cs_evade" && Collider->HasName("cs_left_car"))
    {
    System::Print("Trigger 'evade'");
    GameObject Obj(Collider);
    if (!Obj.IsPhysicsSimulationEnabled())
    {
    Obj.SetPosition(-2810.827881, -1568.366943, -782.000000);
    Obj.SetRotation(0.529212, -0.848472, 0.005562, 0.848425, 0.529241, 0.008917, -0.010510, 0.000000, 0.999945);
    /*Obj.SetPosition(-2808.069824, -1575.084351, -782.000000);
    Obj.SetRotation(0.462137, -0.886808, 0.000000, 0.886808, 0.462137,
    0.000000, 0.000000, 0.000000, 1.000000);*/
    Obj.EnablePhysicsSimulation(true);
    mPhysicsTicks = Game::GetPhysicsStep();
    AccidentCar.StartPhysicsEvent(41);
    Game::SetGameSpeed(0.3f);
    Obj.ApplyForce(0, 100, 0, 0, 0, 0, 3500);
    Audio::PlaySample("mod:/Audio/FX/destruction/carcrash03.wav");
    Audio::StopSample(CS_SampleRefACar);
    //Obj.EnablePhysics();

    RaceCar.SetCurrentPathSpeed(0.0f, -4.0f);
    Audio::StopSample(CS_SampleRefRCar);
    }
    }
    else if (Mission::IsCutSceneRunning() && Trigger == "cs_camerachange" && Collider->HasName("cs_left_car"))
    {
    ChangeCutSceneCamera();
    } else
    if(!HintEscapee && Trigger == "hint_gangster")
    {
    Mission::PlayHint("M05_DRIVER_FLEEING");
    HintEscapee = true;
    }
    }

    void OnPhysicsEvent(GameObject *obj)
    {
    obj->Explode();
    Audio::PlaySample("mod:/Audio/FX/destruction/traincrash03.wav");
    Mission::StartSingleTimer("CS_End", 1.7f, true);
    CS_Sliding = 0;
    FashionShop.Burn();
    }

    void OnCollision(GameObject *Collider1, GameObject *Collider2)
    {
    if (Mission::IsCutSceneRunning())
    {
    if (!Collider2)
    {
    if (Collider1->HasName("cs_left_car") && (CS_Sliding > -1))
    {
    CS_Sliding++;
    if ((CS_Sliding < 150) && (CS_Sliding % 25 == 0))
    Audio::PlaySample("mod:/Audio/FX/destruction/demolition01.wav");
    }
    }
    else
    {
    GameObject *house = NULL, *car = NULL, *person = NULL;
    //if (Collider1->HasName("FashionShop") && Collider2->HasName("cs_left_car"))
    //{
    // house = Collider1;
    // car = Collider2;
    //}
    //else if (Collider2->HasName("FashionShop") && Collider1->HasName("cs_left_car"))
    //{
    // house = Collider2;
    // car = Collider1;
    //}
    //else
    if (Collider1->GetType() == ACTOR_PERSON && Collider2->HasName("cs_left_car"))
    {
    person = Collider1;
    }
    else if (Collider1->HasName("cs_left_car") && Collider2->GetType() == ACTOR_PERSON)
    {
    person = Collider2;
    }

    //if (house)
    //{
    // if (AccidentCar.GetBurningStatus() == OBS_NORMAL)
    // {
    // System::Log("Physics step on explode: %d", Game::GetPhysicsStep() - mPhysicsTicks);
    // AccidentCar.Explode();
    // Audio::PlaySample("mod:/Audio/FX/destruction/traincrash03.wav");
    // Mission::StartSingleTimer("CS_End", 1.7f, true);
    // CS_Sliding = 0;
    // house->Burn();
    // }
    //}
    //else
    if (person)
    {
    if (!person->IsPhysicsSimulationEnabled() && person->GetID() != CrossingVictim.GetID())
    {
    //Collider1->SetAnimationTime(0.0f);
    person->EnablePhysicsSimulation();
    person->EnablePhysics();
    Person p = (Person*)person;
    p.Injure(INJUREREASON_ENERGY);
    }
    }
    }
    }
    }

    void UpdateCutScene()
    {
    }

    void Update()
    {
    if(!HintFires2 && Mission::GetCounter("Burning Houses") > 5)
    {
    HintFires2 = true;
    Mission::PlayHint("M05_FIRE02");
    }

    if(!HintDead && Mission::GetCounter("Dead civils") > 0)
    {
    HintDead = true;
    Mission::PlayHint("M05_INJURED_DEAD");
    }

    if(Mission::GetCounter("Injured Civils")== 0)
    Mission::SetObjectiveAccomplished("M05_TREAT_AND_TRANSPORT_INJURED_PERSONS", true);
    if(AfterCutscene && Driver.IsValid())
    {
    if(Driver.HasArrived("driver_path_2"))
    driverescape = true;
    }
    }

    void OnMissionLeft(GameObject *obj)
    {
    if(obj && obj->GetID() == Driver.GetID())
    Mission::SetObjectiveAccomplished("M05_ARREST_RACE_DRIVER", true);
    }

    void StartSecondPath()
    {
    Driver.SetObjectPath("driver_path_2");
    }

    PathFinishedAction OnPathFinished(const char *Path, GameObject *Obj)
    {
    if(Obj && Path=="escape_path" && Obj->GetID()==RaceCar.GetID())
    {
    Driver = Game::CreatePerson("mod:Prototypes/Persons/Civil/streetracer01.e3p", "Driver");
    float x, y, z;
    RaceCar.GetPosition(x, y, z);
    y -= 100;
    Driver.SetPosition(x, y, z);
    Driver.SetEscapePath("driver_path_1");
    Driver.SetFleeing(true);
    Driver.SetMessageGroup("flight");
    return PATH_STOP;
    } else
    if(Obj && Path=="driver_path_1" && Obj->GetID()==Driver.GetID())
    {
    VehicleList l3("D_police");
    for(int i = 0; i<l3.GetNumVehicles();i++)
    if(Driver.Distance(l3.GetVehicle(i)) <= 100)
    {
    StartSecondPath();
    return;
    }
    Driver.PushActionWait(ACTION_INSERT,1);
    StartSecondPath();
    }

    return PATH_DEFAULT;
    }

    void OnTimer(const char *Timer, float Time)
    {
    switch(Timer)
    {
    case "StartCutScene":
    {
    RunCutScene();
    break;
    }

    case "CS_RaceStart":
    {
    RaceStart();
    White.StopAnimation();
    break;
    }

    case "CS_CrossingVictimWalk":
    {
    CrossingVictim.SetAnimation("run");
    CrossingVictim.SetObjectPath("cs_victim_path");
    break;
    }

    case "CS_ChangeCamera":
    {
    break;
    }

    case "CS_CarSliding":
    {
    Audio::PlaySample("mod:/Audio/FX/destruction/explosion03.wav");
    break;
    }

    case "CS_End":
    {
    Mission::HideBlackBars();
    Mission::EndCutScene();
    Game::SetGameSpeed(1.0f);
    float x, y, z;
    Camera::Get(x, y, z);
    Camera::Set(x, y, 200.0f);
    Mission::StartSingleTimer("CS_Check", 5.0f);

    System::Print("Escape-Path");
    RaceCar.PushActionWait(ACTION_NEWLIST, 0.0f);
    RaceCar.SetObjectPath("escape_path");
    RaceCar.SetCurrentPathSpeed(10.0f, 2.0f);
    Observer.SetObjectPath("northen_path");
    White.SetObjectPath("white_path");

    AfterCutscene = true;
    Mission::AddObjective("M05_TREAT_AND_TRANSPORT_INJURED_PERSONS");
    Mission::AddObjective("M05_EXTINGUISH_FIRES");
    Mission::AddObjective("M05_TRANSPORT_WRECK");
    Audio::SetMusicLevel(0.2f);
    break;
    }

    case "CS_Check":
    {
    //for (int i = 0; i < NumVics; i++)
    //{
    // Victim[i].DumpObjectPositionAndRotation("Victim[i]");
    //}
    //if (Sign.IsValid())
    // Sign.DumpObjectPositionAndRotation("Sign");
    //AccidentCar.DumpObjectPositionAndRotation("AccidentCar");

    Sign.DisablePhysicsSimulation();
    AccidentCar.DisablePhysicsSimulation();
    //Sign.SetPlacementNone();
    //AccidentCar.SetPlacementNone();
    if (Sign.IsValid())
    {
    if (Sign.Distance(-2314.819336, 184.850021, -779.237061) > 1.0f)
    {
    Sign.SetPosition(-2314.819336, 184.850021, -779.237061);
    Sign.SetRotation(-0.000006, 0.933998, 0.357279, 0.000003, -0.357279, 0.933998, 1.000000, 0.000007, -0.000000);
    System::Log("?CutScene: Sign too far away from preset");
    }
    }
    if (AccidentCar.Distance(-2282.250732, 562.604065, -724.171204) > 1.0f)
    {
    AccidentCar.SetPosition(-2282.250732, 562.604065, -724.171204);
    AccidentCar.SetRotation(-0.862085, -0.506764, 0.000027, -0.506764, 0.862085, -0.000022, -0.000012, -0.000033, -1.000000);
    System::Log("?CutScene: AccidentCar too far away from preset");
    }
    Sign.EnablePhysicsSimulation();
    AccidentCar.EnablePhysicsSimulation();
    if (Victim[0].Distance(-2511.181396, -1321.158325, -768.913757) > 1.0f)
    {
    Victim[0].Injure(INJUREREASON_ENERGY);
    Victim[0].DisablePhysicsSimulation();
    Victim[0].SetPosition(-2511.181396, -1321.158325, -768.913757);
    Victim[0].SetRotationPutInXY(0.706639, -0.285365, 0.647479, 0.631727, -0.157744, -0.758971, 0.318720, 0.945348, 0.068805);
    System::Log("?CutScene: Vic 1 too far away from preset");
    }
    if (Victim[1].Distance(-2212.655273, 5.111188, -779.595642) > 1.0f)
    {
    Victim[1].Injure(INJUREREASON_ENERGY);
    Victim[1].DisablePhysicsSimulation();
    Victim[1].SetPosition(-2212.655273, 5.111188, -779.595642);
    Victim[1].SetRotationPutInXY(0.009504, 0.691150, 0.722648, -0.089478, -0.719194, 0.689024, 0.995943, -0.071210, 0.055007);
    System::Log("?CutScene: Vic 2 too far away from preset");
    }
    if (Victim[2].Distance(-2333.146729, -400.425720, -777.837769) > 1.0f)
    {
    Victim[2].Injure(INJUREREASON_ENERGY);
    Victim[2].DisablePhysicsSimulation();
    Victim[2].SetPosition(-2333.146729, -400.425720, -777.837769);
    Victim[2].SetRotationPutInXY(-0.094419, -0.984924, -0.144949, 0.048736, -0.149998, 0.987484, -0.994339, 0.086173, 0.062164);
    System::Log("?CutScene: Vic 3 too far away from preset");
    }
    if (Victim[3].Distance(-2449.726318, -320.003326, -779.393738) > 1.0f)
    {
    Victim[3].Injure(INJUREREASON_ENERGY);
    Victim[3].DisablePhysicsSimulation();
    Victim[3].SetPosition(-2449.726318, -320.003326, -779.393738);
    Victim[3].SetRotationPutInXY(0.036819, 0.816233, 0.576549, -0.089397, -0.571937, 0.815412, 0.995315, -0.081565, 0.051910);
    System::Log("?CutScene: Vic 4 too far away from preset");
    }
    if (Victim[4].Distance(-2658.540283, -1111.164551, -765.956848) > 1.0f)
    {
    Victim[4].Injure(INJUREREASON_ENERGY);
    Victim[4].DisablePhysicsSimulation();
    Victim[4].SetPosition(-2658.540283, -1111.164551, -765.956848);
    Victim[4].SetRotationPutInXY(0.115247, 0.618137, -0.777576, 0.054405, -0.785545, -0.616409, -0.991846, 0.028736, -0.124162);
    System::Log("?CutScene: Vic 5 too far away from preset");
    }
    if (Victim[5].Distance(-2497.291748, -801.483154, -778.140015) > 1.0f)
    {
    Victim[5].Injure(INJUREREASON_ENERGY);
    Victim[5].DisablePhysicsSimulation();
    Victim[5].SetPosition(-2497.291748, -801.483154, -778.140015);
    Victim[5].SetRotationPutInXY(0.115641, 0.742766, 0.659489, -0.299460, -0.606981, 0.736137, 0.947075, -0.282618, 0.152237);
    System::Log("?CutScene: Vic 6 too far away from preset");
    }

    break;
    }
    }
    }

    void OnSquadVehicleArrived(Vehicle *v)
    {
    if(FirstVehicle)
    {
    Mission::StartSingleTimer("StartCutScene", 3.0f);
    FirstVehicle = false;
    }
    }

    ActionCallbackResult OnPostAction(const char *Action, ActionCallback* Data)
    {
    switch(Action)
    {
    case "EActionArrestPerson" :
    {
    if(Data->Parameters[0].iValue!=Driver.GetID())
    {
    Mission::IncCounter("ArrestedPersons");
    Mission::PlayHint("M05_ARREST_INNOCENT");
    }
    break;
    }
    }

    return ACTION_CONTINUE;
    }

    MoveCollCheck OnCheckMoveCollision(GameObject *Obj, Actor *act)
    {
    if (Mission::IsCutSceneRunning())
    {
    if (Obj->HasName("cs_left_car"))
    {
    return MCC_IGNORE_CONTINUE;
    }
    }
    return MCC_HALT_CONTINUE;
    }

    MissionState GetMissionState()
    {
    if(driverescape)
    {
    Audio::SetMusicLevel(0.3f);
    return MISSION_FAILED;
    }

    if(Mission::GetCounter("Civil Deaths") >= MAX_DEAD_PEOPLE)
    {
    Audio::SetMusicLevel(0.3f);
    return MISSION_FAILED;
    }

    if(AfterCutscene && Mission::AllObjectivesAccomplished())
    {
    Audio::SetMusicLevel(0.4f);
    return MISSION_SUCCEEDED;
    }

    if(Mission::GetCounter("Burning Houses") >= MAX_BURNT_HOUSES)
    {
    Audio::SetMusicLevel(0.3f);
    return MISSION_FAILED;
    }

    if(Mission::GetCounter("ArrestedPersons") >= MAX_ARRESTED_PERSONS)
    {
    Audio::SetMusicLevel(0.3f);
    return MISSION_FAILED;
    }

    if(Mission::GetCounter("Burning Houses") == 0)
    Mission::SetObjectiveAccomplished("M05_EXTINGUISH_FIRES", true);
    else
    Mission::SetObjectiveAccomplished("M05_EXTINGUISH_FIRES", false);

    SpecialHouses = 0;
    GameObjectList l0("Special");
    for(int i=0; i<l0.GetNumObjects(); i++)
    {
    GameObject *obj = l0.GetObject(i);
    if(obj->GetBurningStatus() == OBS_FULLBURNED)
    SpecialHouses++;
    }

    if(SpecialHouses >= MAX_SPECIAL_BURNT_HOUSES )
    {
    Audio::SetMusicLevel(0.3f);
    return MISSION_FAILED;
    }

    if(!AccidentCar.IsValid())
    Mission::SetObjectiveAccomplished("M05_TRANSPORT_WRECK", true);

    return MISSION_RUNNING;
    }

    const char *GetFailReason()
    {
    if(driverescape)
    return "M05_GANGSTER_ESCAPED";
    if(Mission::GetCounter("Civil deaths") >= MAX_DEAD_PEOPLE)
    return "TOO_MANY_DEADS";
    if(Mission::GetCounter("Burning Houses") >= MAX_BURNT_HOUSES)
    return "TOO_MANY_FIRES";
    if(SpecialHouses >= MAX_SPECIAL_BURNT_HOUSES )
    return "TOO_MANY_FIRES";
    if(Mission::GetCounter("ArrestedPersons") >= MAX_ARRESTED_PERSONS)
    return "M05_TOO_MANY_INNOCENT_ARRESTED";

    return "UNKNOWN";
    }

    bool SerializeTo(ScriptSerializer *Serializer)
    {
    int Version = 0x0100;
    Serializer->Write(Version);
    Serializer->Write(driverescape);
    Serializer->Write(SpecialHouses);
    Serializer->Write(FirstVehicle);
    Serializer->Write(AfterCutscene);
    Serializer->Write(AccidentCar);
    Serializer->Write(RaceCar);
    Serializer->Write(CrossingVictim);
    for(int i=0; i<MAXVICS; i++)
    Serializer->Write(Victim[i]);
    Serializer->Write(FashionShop);
    Serializer->Write(Sign);
    Serializer->Write(Driver);
    Serializer->Write(Smoke_l);
    Serializer->Write(Smoke_r);
    Serializer->Write(Observer);
    Serializer->Write(White);
    for(int i=0; i<4; i++)
    Serializer->Write(CS_WheelSmoke[i]);
    Serializer->Write(NumVics);
    Serializer->Write(CS_SampleRefACar);
    Serializer->Write(CS_SampleRefRCar);
    Serializer->Write(CS_Sliding);
    Serializer->Write(HintEscapee);
    Serializer->Write(HintFires2);
    Serializer->Write(HintDead);
    Serializer->Write(HintArrest);

    return true;
    }

    bool SerializeFrom(ScriptSerializer *Serializer)
    {
    int Version;
    Serializer->Read(Version);
    //Serializer->Read(driverescape);
    driverescape = Serializer->ReadBool();
    Serializer->Read(SpecialHouses);
    //Serializer->Read(FirstVehicle);
    FirstVehicle = Serializer->ReadBool();
    //Serializer->Read(AfterCutscene);
    AfterCutscene = Serializer->ReadBool();
    Serializer->Read(AccidentCar);
    Serializer->Read(RaceCar);
    Serializer->Read(CrossingVictim);
    for(int i=0; i<MAXVICS; i++)
    Serializer->Read(Victim[i]);
    Serializer->Read(FashionShop);
    Serializer->Read(Sign);
    Serializer->Read(Driver);
    Serializer->Read(Smoke_l);
    Serializer->Read(Smoke_r);
    Serializer->Read(Observer);
    Serializer->Read(White);
    for(int i=0; i<4; i++)
    Serializer->Read(CS_WheelSmoke[i]);
    Serializer->Read(NumVics);
    Serializer->Read(CS_SampleRefACar);
    Serializer->Read(CS_SampleRefRCar);
    Serializer->Read(CS_Sliding);
    //Serializer->Read(HintEscapee);
    HintEscapee = Serializer->ReadBool();
    //Serializer->Read(HintFires2);
    HintFires2 = Serializer->ReadBool();
    //Serializer->Read(HintDead);
    HintDead = Serializer->ReadBool();
    //Serializer->Read(HintArrest);
    HintArrest = Serializer->ReadBool();
    return true;
    }

    float GetRating()
    {
    return 1.0f;
    }
    };

×
×
  • Create New...