Ares
Public Member Functions | Static Public Member Functions | Public Attributes

ArmorType Class Reference

#include <src/Enum/ArmorTypes.h>

Inheritance diagram for ArmorType:
Enumerable< ArmorType >

List of all members.

Public Member Functions

 ArmorType (const char *Title)
virtual ~ArmorType ()
virtual void LoadFromINI (CCINIClass *pINI)

Static Public Member Functions

static void LoadForWarhead (CCINIClass *pINI, WarheadTypeClass *pWH)
static void AddDefaults ()

Public Attributes

int DefaultIndex
WarheadTypeExt::VersesData DefaultVerses

Constructor & Destructor Documentation

ArmorType::ArmorType ( const char *  Title) [inline]
                                     {
                AresCRT::strCopy(this->Name, Title, 31);
                DefaultIndex = -1;
                Array.AddItem(this);
        }
virtual ArmorType::~ArmorType ( ) [inline, virtual]
                             {
                ArmorType *placeholder = this;
                Array.RemoveItem(Array.FindItemIndex(&placeholder));
        }

Member Function Documentation

void ArmorType::AddDefaults ( ) [static]
{
        FindOrAllocate("none");
        FindOrAllocate("flak");
        FindOrAllocate("plate");
        FindOrAllocate("light");
        FindOrAllocate("medium");
        FindOrAllocate("heavy");
        FindOrAllocate("wood");
        FindOrAllocate("steel");
        FindOrAllocate("concrete");
        FindOrAllocate("special_1");
        FindOrAllocate("special_2");
}
void ArmorType::LoadForWarhead ( CCINIClass *  pINI,
WarheadTypeClass *  pWH 
) [static]
{
        WarheadTypeExt::ExtData *pData = WarheadTypeExt::ExtMap.Find(pWH);
        if(!pData) {
                return;
        }

        while(pData->Verses.Count < Array.Count) {
                ArmorType *pArmor = Array[pData->Verses.Count];
                int idx = pArmor->DefaultIndex;
                pData->Verses.AddItem(
                        idx == -1
                                ? pArmor->DefaultVerses
                                : pData->Verses[idx]
                );
        }

        char buffer[0x80];
        char ret[0x20];
        const char *section = pWH->get_ID();

        for(int i = 0; i < Array.Count; ++i) {
                _snprintf(buffer, 64, "Versus.%s", Array[i]->Name);
                if(pINI->ReadString(section, buffer, "", ret, 0x20)) {

                        pData->Verses[i].Parse(ret);
                }

                _snprintf(buffer, 128, "Versus.%s.ForceFire", Array[i]->Name);
                pData->Verses[i].ForceFire = pINI->ReadBool(section, buffer, pData->Verses[i].ForceFire);

                _snprintf(buffer, 128, "Versus.%s.Retaliate", Array[i]->Name);
                pData->Verses[i].Retaliate = pINI->ReadBool(section, buffer, pData->Verses[i].Retaliate);

                _snprintf(buffer, 128, "Versus.%s.PassiveAcquire", Array[i]->Name);
                pData->Verses[i].PassiveAcquire = pINI->ReadBool(section, buffer, pData->Verses[i].PassiveAcquire);
        }
}
void ArmorType::LoadFromINI ( CCINIClass *  pINI) [virtual]
{
        const char *section = Enumerable<ArmorType>::GetMainSection();

        char buffer[0x40];
        pINI->ReadString(section, this->Name, "", buffer, 0x40);

        this->DefaultIndex = ArmorType::FindIndex(buffer);
        WarheadTypeExt::VersesData *VS = &this->DefaultVerses;
        VS->Parse(buffer);
}

Member Data Documentation


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