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) |
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 [] |
static EffectTickProc *const | _effect_tick_procs [] |
Implementation of everything generic to vehicles.
Definition in file effectvehicle.cpp.
EffectVehicle* CreateEffectVehicle | ( | int | x, | |
int | y, | |||
int | z, | |||
EffectVehicleType | type | |||
) |
Create an effect vehicle at a particular location.
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. |
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.
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. |
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.
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. |
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().
const BubbleMovement _bubble_burst[] [static] |
{ 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] |
{ 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] |
{ 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] |
{ 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] |
{ 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] |
{ _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] |
{ { 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] |
{ ChimneySmokeInit, SteamSmokeInit, DieselSmokeInit, ElectricSparkInit, SmokeInit, ExplosionLargeInit, BreakdownSmokeInit, ExplosionSmallInit, BulldozerInit, BubbleInit, }
Definition at line 534 of file effectvehicle.cpp.
EffectTickProc* const _effect_tick_procs[] [static] |
{ ChimneySmokeTick, SteamSmokeTick, DieselSmokeTick, ElectricSparkTick, SmokeTick, ExplosionLargeTick, BreakdownSmokeTick, ExplosionSmallTick, BulldozerTick, BubbleTick, }
Definition at line 547 of file effectvehicle.cpp.