$treeview $search $mathjax
Stratagus  2.2.7
$projectbrief
$projectbrief
$searchbox
-->
         _________ __                 __
        /   _____//  |_____________ _/  |______     ____  __ __  ______
        \_____  \\   __\_  __ \__  \\   __\__  \   / ___\|  |  \/  ___/
        /        \|  |  |  | \// __ \|  |  / __ \_/ /_/  >  |  /\___ \
       /_______  /|__|  |__|  (____  /__| (____  /\___  /|____//____  >
               \/                  \/          \//_____/            \/
    ______________________                           ______________________
                          T H E   W A R   B E G I N S
                   Stratagus - A free fantasy real time strategy game engine

src/missile/missile.cpp File Reference

#include <math.h>
#include "stratagus.h"
#include "missile.h"
#include "actions.h"
#include "font.h"
#include "iolib.h"
#include "luacallback.h"
#include "map.h"
#include "player.h"
#include "sound.h"
#include "trigger.h"
#include "ui.h"
#include "unit.h"
#include "unit_find.h"
#include "unitsound.h"
#include "unittype.h"

missile.cpp - The missiles.

static std::vector< Missile * > GlobalMissiles
static std::vector< Missile * > LocalMissiles
 all global missiles on map
static MissileTypeMap MissileTypes
std::vector
< BurningBuildingFrame * > 
BurningBuildingFrames
NumberDescDamage
 Burning building frames.
typedef std::map< std::string,
MissileType * > 
MissileTypeMap
 all local missiles on map
void LoadMissileSprites ()
 load all missile sprites
MissileTypeMissileTypeByIdent (const std::string &ident)
 Get missile-type by ident.
MissileTypeNewMissileTypeSlot (const std::string &ident)
 allocate an empty missile-type slot
MissileMakeMissile (const MissileType &mtype, const PixelPos &startPos, const PixelPos &destPos)
 create a missile
MissileMakeLocalMissile (const MissileType &mtype, const PixelPos &startPos, const PixelPos &destPos)
 create a local missile
static int CalculateDamageStats (const CUnitStats &attacker_stats, const CUnitStats &goal_stats, int bloodlust)
static int CalculateDamage (const CUnit &attacker, const CUnit &goal)
void FireMissile (CUnit &unit, CUnit *goal, const Vec2i &goalPos)
static void GetMissileMapArea (const Missile &missile, Vec2i &boxMin, Vec2i &boxMax)
static int MissileVisibleInViewport (const CViewport &vp, const Missile &missile)
static bool MissileDrawLevelCompare (const Missile *const l, const Missile *const r)
void FindAndSortMissiles (const CViewport &vp, std::vector< Missile * > &table)
bool MissileInitMove (Missile &missile)
void MissileHandlePierce (Missile &missile, const Vec2i &pos)
bool PointToPointMissile (Missile &missile)
static void MissileHitsGoal (const Missile &missile, CUnit &goal, int splash)
static void MissileHitsWall (const Missile &missile, const Vec2i &tilePos, int splash)
static void MissilesActionLoop (std::vector< Missile * > &missiles)
void MissileActions ()
 handle all missiles
int ViewPointDistanceToMissile (const Missile &missile)
 distance from view point to missile
MissileTypeMissileBurningBuilding (int percent)
 Get the burning building missile based on hp percent.
static void SavePixelPos (CFile &file, const PixelPos &pos)
void SaveMissiles (CFile &file)
 Save missiles.
void InitMissileTypes ()
 Initialize missile-types.
void CleanMissileTypes ()
 Clean missile-types.
void InitMissiles ()
 Initialize missiles.
void CleanMissiles ()
 Clean missiles.

Typedef Documentation

typedef std::map<std::string, MissileType *> MissileTypeMap

all local missiles on map

lookup table for missile names


Function Documentation

static int CalculateDamage ( const CUnit attacker,
const CUnit goal 
) [static]

Calculate damage.

Parameters:
attacker Attacker.
goal Goal unit.
Returns:
damage produces on goal.

static int CalculateDamageStats ( const CUnitStats attacker_stats,
const CUnitStats goal_stats,
int  bloodlust 
) [static]

Calculate damage.

Todo:
NOTE: different targets (big are hit by some missiles better)
Todo:
NOTE: lower damage for hidden targets.
Todo:
NOTE: lower damage for targets on higher ground.
Parameters:
attacker_stats Attacker attributes.
goal_stats Goal attributes.
bloodlust If attacker has bloodlust
xp Experience of attacker.
Returns:
damage inflicted to goal.

void CleanMissiles (  ) 

Clean missiles.

Clean up missiles.

void CleanMissileTypes (  ) 

Clean missile-types.

Clean up missile-types.

void FindAndSortMissiles ( const CViewport vp,
std::vector< Missile * > &  table 
)

Sort visible missiles on map for display.

Parameters:
vp Viewport pointer.
table OUT : array of missile to display sorted by DrawLevel.

void FireMissile ( CUnit unit,
CUnit goal,
const Vec2i goalPos 
)

Fire missile.

Parameters:
unit Unit that fires the missile.

static void GetMissileMapArea ( const Missile missile,
Vec2i boxMin,
Vec2i boxMax 
) [static]

Get area of tiles covered by missile

Parameters:
missile Missile to be checked and set.
boxMin OUT: Pointer to top left corner in map tiles.
boxMax OUT: Pointer to bottom right corner in map tiles.
Returns:
sx,sy,ex,ey defining area in Map

void InitMissiles (  ) 

Initialize missiles.

Initialize missiles.

void InitMissileTypes (  ) 

Initialize missile-types.

Initialize missile-types.

void LoadMissileSprites (  ) 

load all missile sprites

Load the graphics for all missiles types

Missile* MakeLocalMissile ( const MissileType mtype,
const PixelPos startPos,
const PixelPos destPos 
)

create a local missile

Create a new local missile at (x,y).

Parameters:
mtype Type pointer of missile.
startPos Missile start point in pixel.
destPos Missile destination point in pixel.
Returns:
created missile.

Missile* MakeMissile ( const MissileType mtype,
const PixelPos startPos,
const PixelPos destPos 
)

create a missile

Create a new global missile at (x,y).

Parameters:
mtype Type pointer of missile.
startPos Missile start point in pixel.
destPos Missile destination point in pixel.
Returns:
created missile.

void MissileActions (  ) 

handle all missiles

Handle all missile actions.

MissileType* MissileBurningBuilding ( int  percent  ) 

Get the burning building missile based on hp percent.

Get the burning building missile based on hp percent.

Parameters:
percent HP percent
Returns:
the missile used for burning.

static bool MissileDrawLevelCompare ( const Missile *const   l,
const Missile *const   r 
) [static]

void MissileHandlePierce ( Missile missile,
const Vec2i pos 
)

static void MissileHitsGoal ( const Missile missile,
CUnit goal,
int  splash 
) [static]

Missile hits the goal.

Parameters:
missile Missile hitting the goal.
goal Goal of the missile.
splash Splash damage divisor.

static void MissileHitsWall ( const Missile missile,
const Vec2i tilePos,
int  splash 
) [static]

Missile hits wall.

Parameters:
missile Missile hitting the goal.
tilePos Wall map tile position.
splash Splash damage divisor.
Todo:
FIXME: Support for more races.

bool MissileInitMove ( Missile missile  ) 

Init the move.

Parameters:
missile missile to initialise for movement.
Returns:
true if goal is reached, false else.

static void MissilesActionLoop ( std::vector< Missile * > &  missiles  )  [static]

Handle all missile actions of global/local missiles.

Parameters:
missiles Table of missiles.

MissileType* MissileTypeByIdent ( const std::string &  ident  ) 

Get missile-type by ident.

Get Missile type by identifier.

Parameters:
ident Identifier.
Returns:
Missile type pointer.

static int MissileVisibleInViewport ( const CViewport vp,
const Missile missile 
) [static]

Check missile visibility in a given viewport.

Parameters:
vp Viewport to be checked.
missile Missile pointer to check if visible.
Returns:
Returns true if visible, false otherwise.

MissileType* NewMissileTypeSlot ( const std::string &  ident  ) 

allocate an empty missile-type slot

Allocate an empty missile-type slot.

Parameters:
ident Identifier to identify the slot.
Returns:
New allocated (zeroed) missile-type pointer.

bool PointToPointMissile ( Missile missile  ) 

Handle point to point missile.

Parameters:
missile Missile pointer.
Returns:
true if goal is reached, false else.

void SaveMissiles ( CFile file  ) 

Save missiles.

Save the state missiles to file.

Parameters:
file Output file.

static void SavePixelPos ( CFile file,
const PixelPos pos 
) [static]

Save a specific pos.

int ViewPointDistanceToMissile ( const Missile missile  ) 

distance from view point to missile

Calculate distance from view-point to missle.

Parameters:
missile Missile pointer for distance.
Returns:
the computed value.


Variable Documentation

Burning building frames.

std::vector<Missile *> GlobalMissiles [static]

std::vector<Missile *> LocalMissiles [static]

all global missiles on map

(C) Copyright 1998-2012 by The Stratagus Project under the GNU General Public License.
All trademarks and copyrights on this page are owned by their respective owners.