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"
#include "table/sprites.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)
EffectVehicleCreateEffectVehicle (int x, int y, int z, EffectVehicleType type)
 Create an effect vehicle at a particular location.
EffectVehicleCreateEffectVehicleAbove (int x, int y, int z, EffectVehicleType type)
 Create an effect vehicle above a particular location.
EffectVehicleCreateEffectVehicleRel (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 []
static EffectTickProc *const _effect_tick_procs []

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 569 of file effectvehicle.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::CanAllocateItem(), INVALID_DIR, MarkSingleVehicleDirty(), Vehicle::subtype, Vehicle::tile, EffectVehicle::UpdateDeltaXY(), VehicleMove(), Vehicle::vehstatus, VS_UNCLICKABLE, 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 598 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 614 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 362 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 338 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 354 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 346 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 329 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 460 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 253 of file effectvehicle.cpp.

EffectInitProc* const _effect_init_procs[] [static]
Initial value:
 {
  ChimneySmokeInit,
  SteamSmokeInit,
  DieselSmokeInit,
  ElectricSparkInit,
  SmokeInit,
  ExplosionLargeInit,
  BreakdownSmokeInit,
  ExplosionSmallInit,
  BulldozerInit,
  BubbleInit,
}

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,
}

Definition at line 547 of file effectvehicle.cpp.


Generated on Fri May 27 04:19:54 2011 for OpenTTD by  doxygen 1.6.1