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. | |
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 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.
| 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 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.
| 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 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().
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 361 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 337 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 353 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 345 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 328 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 459 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 252 of file effectvehicle.cpp.
EffectInitProc* const _effect_init_procs[] [static] |
{
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] |
{
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] |
{
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.
1.7.1