Ares
Classes | Public Types | Static Public Member Functions | Static Public Attributes

WeaponTypeExt Class Reference

#include <src/Ext/WeaponType/Body.h>

List of all members.

Classes

class  ExtData

Public Types

typedef WeaponTypeClass TT

Static Public Member Functions

static char AbsIDtoIdx (eAbstractType absId)
static bool ModifyWaveColor (WORD *src, WORD *dst, int Intensity, WaveClass *Wave)

Static Public Attributes

static Container< WeaponTypeExtExtMap
static hash_map< BombClass
*, ExtData * > 
BombExt
static hash_map< WaveClass
*, ExtData * > 
WaveExt
static hash_map< EBolt
*, ExtData * > 
BoltExt
static hash_map< RadSiteClass
*, ExtData * > 
RadSiteExt

Member Typedef Documentation

typedef WeaponTypeClass WeaponTypeExt::TT

Member Function Documentation

static char WeaponTypeExt::AbsIDtoIdx ( eAbstractType  absId) [inline, static]
                {
                        switch(absId)
                        {
                                case abs_Unit:
                                        return idxVehicle;
                                case abs_Aircraft:
                                        return idxAircraft;
                                case abs_Building:
                                        return idxBuilding;
                                case abs_Infantry:
                                        return idxInfantry;
                                default:
                                        return idxOther;
                        }
                };
bool WeaponTypeExt::ModifyWaveColor ( WORD *  src,
WORD *  dst,
int  Intensity,
WaveClass *  Wave 
) [static]
{
        WeaponTypeExt::ExtData *pData = WeaponTypeExt::WaveExt[Wave];

        ColorStruct *CurrentColor = (pData->Wave_IsHouseColor && Wave->Owner)
                ? &Wave->Owner->Owner->Color
                : &pData->Wave_Color;

        if(*CurrentColor == ColorStruct(0, 0, 0)) {
                return false;
        }

        ColorStruct initial = Drawing::WordColor(*src);

        ColorStruct modified = initial;

// ugly hack to fix byte wraparound problems
#define upcolor(c) \
        int _ ## c = initial. c + (Intensity * CurrentColor-> c ) / 256; \
        _ ## c = std::min(_ ## c, 255); \
        modified. c = (BYTE)_ ## c;

        upcolor(R);
        upcolor(G);
        upcolor(B);

        WORD color = Drawing::Color16bit(&modified);

        *dst = color;
        return true;
}

Member Data Documentation


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines