Data Structures | Defines | Typedefs | Functions | Variables

# effectvehicle.cpp File Reference

Implementation of everything generic to vehicles. More...

`#include "stdafx.h"`
`#include "landscape.h"`
`#include "core/random_func.hpp"`
`#include "industry_map.h"`
`#include "vehicle_func.h"`
`#include "sound_func.h"`
`#include "animated_tile_func.h"`
`#include "effectvehicle_func.h"`
`#include "effectvehicle_base.h"`

Go to the source code of this file.

## Data Structures
struct | BulldozerMovement
struct | BubbleMovement
## Defines
#define | MK(x, y, z, i) { x, y, z, i }
#define | ME(i) { i, 4, 0, 0 }
## Typedefs
typedef void | EffectInitProc (EffectVehicle *v)
typedef bool | EffectTickProc (EffectVehicle *v)
## Functions
static void | ChimneySmokeInit (EffectVehicle *v)
static bool | ChimneySmokeTick (EffectVehicle *v)
static void | SteamSmokeInit (EffectVehicle *v)
static bool | SteamSmokeTick (EffectVehicle *v)
static void | DieselSmokeInit (EffectVehicle *v)
static bool | DieselSmokeTick (EffectVehicle *v)
static void | ElectricSparkInit (EffectVehicle *v)
static bool | ElectricSparkTick (EffectVehicle *v)
static void | SmokeInit (EffectVehicle *v)
static bool | SmokeTick (EffectVehicle *v)
static void | ExplosionLargeInit (EffectVehicle *v)
static bool | ExplosionLargeTick (EffectVehicle *v)
static void | BreakdownSmokeInit (EffectVehicle *v)
static bool | BreakdownSmokeTick (EffectVehicle *v)
static void | ExplosionSmallInit (EffectVehicle *v)
static bool | ExplosionSmallTick (EffectVehicle *v)
static void | BulldozerInit (EffectVehicle *v)
static bool | BulldozerTick (EffectVehicle *v)
static void | BubbleInit (EffectVehicle *v)
static bool | BubbleTick (EffectVehicle *v)
| assert_compile (lengthof(_effect_init_procs)==EV_END)
| assert_compile (lengthof(_effect_tick_procs)==EV_END)
| assert_compile (lengthof(_effect_transparency_options)==EV_END)
EffectVehicle * | CreateEffectVehicle (int x, int y, int z, EffectVehicleType type)
| Create an effect vehicle at a particular location.
EffectVehicle * | CreateEffectVehicleAbove (int x, int y, int z, EffectVehicleType type)
| Create an effect vehicle above a particular location.
EffectVehicle * | CreateEffectVehicleRel (const Vehicle *v, int x, int y, int z, EffectVehicleType type)
| Create an effect vehicle above a particular vehicle.
## Variables
static const BulldozerMovement | _bulldozer_movement []
struct {
int8 x
int8 y
} | _inc_by_dir []
static const BubbleMovement | _bubble_float_sw []
static const BubbleMovement | _bubble_float_ne []
static const BubbleMovement | _bubble_float_se []
static const BubbleMovement | _bubble_float_nw []
static const BubbleMovement | _bubble_burst []
static const BubbleMovement | _bubble_absorb []
static const BubbleMovement *const | _bubble_movement []
static EffectInitProc *const | _effect_init_procs []
| Functions to initialise an effect vehicle after construction.
static EffectTickProc *const | _effect_tick_procs []
| Functions for controling effect vehicles at each tick.
static const TransparencyOption | _effect_transparency_options []
| Transparency options affecting the effects.

## Detailed Description

Implementation of everything generic to vehicles.

Definition in file effectvehicle.cpp.

## Function Documentation

EffectVehicle* CreateEffectVehicle | ( | int | x,
|  | int | y,
|  | int | z,
|  | EffectVehicleType | type |
| ) |  |  |

Create an effect vehicle at a particular location.

Parameters:

  | x | The x location on the map.
  | y | The y location on the map.
  | z | The z location on the map.
  | type | The type of effect vehicle.

Returns:
  The effect vehicle.

Definition at line 593 of file effectvehicle.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::CanAllocateItem(), INVALID_DIR, Vehicle::subtype, Vehicle::tile, EffectVehicle::UpdateDeltaXY(), VehicleUpdatePositionAndViewport(), Vehicle::vehstatus, Vehicle::x_pos, Vehicle::y_pos, and Vehicle::z_pos.

Referenced by CreateEffectVehicleAbove(), and CreateEffectVehicleRel().

EffectVehicle* CreateEffectVehicleAbove | ( | int | x,
|  | int | y,
|  | int | z,
|  | EffectVehicleType | type |
| ) |  |  |

Create an effect vehicle above a particular location.

Parameters:

  | x | The x location on the map.
  | y | The y location on the map.
  | z | The offset from the ground.
  | type | The type of effect vehicle.

Returns:
  The effect vehicle.

Definition at line 621 of file effectvehicle.cpp.

References Clamp(), CreateEffectVehicle(), MapMaxX(), MapMaxY(), and TILE_SIZE.

Referenced by CmdClearArea(), DisasterTick_Aircraft(), and DisasterTick_Big_Ufo_Destroyer().

EffectVehicle* CreateEffectVehicleRel | ( | const Vehicle * | v,
|  | int | x,
|  | int | y,
|  | int | z,
|  | EffectVehicleType | type |
| ) |  |  |

Create an effect vehicle above a particular vehicle.

Parameters:

  | v | The vehicle to base the position on.
  | x | The x offset to the vehicle.
  | y | The y offset to the vehicle.
  | z | The z offset to the vehicle.
  | type | The type of effect vehicle.

Returns:
  The effect vehicle.

Definition at line 637 of file effectvehicle.cpp.

References CreateEffectVehicle(), Vehicle::x_pos, Vehicle::y_pos, and Vehicle::z_pos.

Referenced by CrashAirplane(), DisasterTick_Big_Ufo_Destroyer(), DisasterTick_Ufo(), DisasterTick_Zeppeliner(), FloodVehicle(), Vehicle::HandleBreakdown(), HandleCrashedAircraft(), HandleCrashedTrain(), RoadVehIsCrashed(), and Vehicle::ShowVisualEffect().

## Variable Documentation

const BubbleMovement _bubble_burst[]`[static]`

Initial value:

     {
      MK(0, 0, 1, 2),
      MK(0, 0, 1, 7),
      MK(0, 0, 1, 8),
      MK(0, 0, 1, 9),

    }

Definition at line 361 of file effectvehicle.cpp.

const BubbleMovement _bubble_float_ne[]`[static]`

Initial value:

     {
      MK( 0, 0, 1, 0),
      MK(-1, 0, 1, 1),
      MK( 0, 0, 1, 0),
      MK(-1, 0, 1, 2),

    }

Definition at line 337 of file effectvehicle.cpp.

const BubbleMovement _bubble_float_nw[]`[static]`

Initial value:

     {
      MK(0,  0, 1, 0),
      MK(0, -1, 1, 1),
      MK(0,  0, 1, 0),
      MK(0, -1, 1, 2),

    }

Definition at line 353 of file effectvehicle.cpp.

const BubbleMovement _bubble_float_se[]`[static]`

Initial value:

     {
      MK(0, 0, 1, 0),
      MK(0, 1, 1, 1),
      MK(0, 0, 1, 0),
      MK(0, 1, 1, 2),

    }

Definition at line 345 of file effectvehicle.cpp.

const BubbleMovement _bubble_float_sw[]`[static]`

Initial value:

     {
      MK(0, 0, 1, 0),
      MK(1, 0, 1, 1),
      MK(0, 0, 1, 0),
      MK(1, 0, 1, 2),

    }

Definition at line 328 of file effectvehicle.cpp.

const BubbleMovement* const _bubble_movement[]`[static]`

Initial value:

     {
      _bubble_float_sw,
      _bubble_float_ne,
      _bubble_float_se,
      _bubble_float_nw,
      _bubble_burst,
      _bubble_absorb,
    }

Definition at line 459 of file effectvehicle.cpp.

const BulldozerMovement _bulldozer_movement[]`[static]`

Initial value:

     {
      { 0, 0, 4 },
      { 3, 3, 4 },
      { 2, 2, 7 },
      { 0, 2, 7 },
      { 1, 1, 3 },
      { 2, 2, 7 },
      { 0, 2, 7 },
      { 1, 1, 3 },
      { 2, 2, 7 },
      { 0, 2, 7 },
      { 3, 3, 6 },
      { 2, 2, 6 },
      { 1, 1, 7 },
      { 3, 1, 7 },
      { 0, 0, 3 },
      { 1, 1, 7 },
      { 3, 1, 7 },
      { 0, 0, 3 },
      { 1, 1, 7 },
      { 3, 1, 7 }
    }

Definition at line 252 of file effectvehicle.cpp.

EffectInitProc* const _effect_init_procs[]`[static]`

Initial value:

     {
      ChimneySmokeInit,
      SteamSmokeInit,
      DieselSmokeInit,
      ElectricSparkInit,
      SmokeInit,
      ExplosionLargeInit,
      BreakdownSmokeInit,
      ExplosionSmallInit,
      BulldozerInit,
      BubbleInit,
      SmokeInit,
      SmokeInit,
    }

Functions to initialise an effect vehicle after construction.

Definition at line 534 of file effectvehicle.cpp.

EffectTickProc* const _effect_tick_procs[]`[static]`

Initial value:

     {
      ChimneySmokeTick,
      SteamSmokeTick,
      DieselSmokeTick,
      ElectricSparkTick,
      SmokeTick,
      ExplosionLargeTick,
      BreakdownSmokeTick,
      ExplosionSmallTick,
      BulldozerTick,
      BubbleTick,
      SmokeTick,
      SmokeTick,
    }

Functions for controling effect vehicles at each tick.

Definition at line 551 of file effectvehicle.cpp.

const TransparencyOption _effect_transparency_options[]`[static]`

Initial value:

     {
      TO_INDUSTRIES,
      TO_INVALID,
      TO_INVALID,
      TO_INVALID,
      TO_INVALID,
      TO_INVALID,
      TO_INVALID,
      TO_INVALID,
      TO_INVALID,
      TO_INDUSTRIES,
      TO_INVALID,
      TO_INDUSTRIES,
    }

Transparency options affecting the effects.

Definition at line 568 of file effectvehicle.cpp.