Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions Spore ModAPI/SourceCode/Editors/VerbIconData.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#ifndef MODAPI_DLL_EXPORT
#include <Spore\Editors\VerbIconData.h>


namespace Editors
{
auto_METHOD_VIRTUAL_(VerbIconData, VerbIconData, int, AddRef);
auto_METHOD_VIRTUAL_(VerbIconData, VerbIconData, int, Release);
auto_METHOD_VIRTUAL_(VerbIconData, VerbIconData, void*, Dispose);
auto_METHOD_VIRTUAL(VerbIconData, VerbIconData, void*, AsInterface, Args(Editors::VerbIconData::InterfaceId interfaceID), Args(interfaceID));
auto_METHOD_VIRTUAL_VOID(VerbIconData, VerbIconData, Init, Args(App::PropertyList* abilityProp), Args(abilityProp));
auto_METHOD_VIRTUAL_VOID_(VerbIconData, VerbIconData, Shutdown);
auto_METHOD_VIRTUAL_VOID(VerbIconData, VerbIconData, SetArrayIndex, Args(int arrayIndex), Args(arrayIndex));
auto_METHOD_VIRTUAL_VOID(VerbIconData, VerbIconData, SetHotKey, Args(int verbIconTriggerKey), Args(verbIconTriggerKey));
auto_METHOD_VIRTUAL(VerbIconData, VerbIconData, eastl::string16, GetIconName, Args(eastl::string16* iconName, bool includeLevel), Args(iconName, includeLevel));
auto_METHOD_VIRTUAL(VerbIconData, VerbIconData, eastl::string16, GetIconDescription, Args(eastl::string16* iconDesc), Args(iconDesc));
}
#endif
3 changes: 3 additions & 0 deletions Spore ModAPI/Spore ModAPI.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -2738,6 +2738,9 @@
<ClCompile Include="SourceCode\OpenSSL.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="SourceCode\Editors\VerbIconData.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Natvis Include="EASTL.natvis" />
Expand Down
102 changes: 89 additions & 13 deletions Spore ModAPI/Spore/Editors/VerbIconData.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,33 +11,94 @@
namespace Editors
{
class VerbIconData
: public Object
, public DefaultRefCounted
//: public Object
: public DefaultRefCounted
{
public:
static const uint32_t TYPE = 0x4AA0ACD;

enum InterfaceId
{
kIIDMin = 0,
kIIDFactory = 1,
kIIDMax = 0xffffffff,
};

/* 10h */ virtual void ParseProp(App::PropertyList* propList);
/// Resets mpPropList
/* 14h */ virtual void ClearPropList();
/* 18h */ virtual void func18h(int);
/* 00h */ virtual int AddRef();
/* 04h */ virtual int Release();
/* 08h */ virtual void* Dispose();
/* 0Ch */ virtual void* AsInterface(InterfaceId propList);
/* 10h */ virtual void Init(App::PropertyList* propList);
/* 14h */ virtual void Shutdown();
/* 18h */ virtual void SetArrayIndex(int arrayIndex);
/// Used to generate text
/* 20h */ virtual void SetKey(int verbIconTriggerKey);
/* 24h */ virtual eastl::string16 GetName(bool includeLevel);
/* 28h */ virtual eastl::string16 GetDescription();
/* 1Ch */ virtual void SetHotKey(int verbIconTriggerKey);
/* 20h */ virtual eastl::string16 GetIconName(eastl::string16* iconName,bool includeLevel);
/* 24h */ virtual eastl::string16 GetIconDescription(eastl::string16* iconDesc);

enum eVerbIconCategory
{
kVerbCategoryNULL = 0,
kVerbCategoryTribeAttack = 180661997,
kVerbCategoryVehiclePower = 360359141,
kVerbCategorySpeed = 640949982,
kVerbCategoryTribeArmor = 662199250,
kVerbCategoryHerbivore = 771444639,
kVerbCategorySpit = 823131355,
kVerbCategoryCellCilia = 835506386,
kVerbCategoryVehicleDefense = 886488350,
kVerbCategoryCellJaw = 1101458518,
kVerbCategoryCellJet = 1168568857,
kVerbCategorySprint = 1296465089,
kVerbCategoryCellOmnivore = 1377441237,
kVerbCategoryCellElectric = 1470348634,
kVerbCategoryVehicleSpeed = 1501155019,
kVerbCategoryOmnivore = 1557282664,
kVerbCategoryTribeSocial = 1589650888,
kVerbCategoryCellPoison = 1601154124,
kVerbCategoryBite = 1645043423,
kVerbCategoryDance = 1924791374,
kVerbCategoryStarvivore = 2095425492,
kVerbCategoryCellFlagella = 2165516464,
kVerbCategoryGesture = 2167648234,
kVerbCategoryPower = 2391494160,
kVerbCategoryDefense = 2564315215,
kVerbCategoryCarnivore = 2726979560,
kVerbCategoryStealth = 2909291642,
kVerbCategoryPosture = 2909789983,
kVerbCategoryCellHealth = 2964572918,
kVerbCategoryGlide = 2968795556,
kVerbCategoryCellPoker = 3013574067,
kVerbCategoryCellFilter = 3020374546,
kVerbCategoryTribeFishing = 3188984297,
kVerbCategoryTribeGather = 3253334812,
kVerbCategoryVocalize = 3478552014,
kVerbCategoryCellStarvivore = 3610717237,
kVerbCategoryCellSpike = 3634179486,
kVerbCategoryCellHerbivore = 3653024240,
kVerbCategoryHealth = 3677180323,
kVerbCategoryCellCarnivore = 3751859903,
kVerbCategoryCall = 3753286133,
kVerbCategoryJump = 3833651337,
kVerbCategoryBlock = 4001580976,
kVerbCategorySense = 4069948569,
kVerbCategoryStrike = 4110605575,
kVerbCategoryGrasp = 4248645338,
kVerbCategoryCharge = 4285247397
};

public:
/* 0Ch */ bool mVerbIconUseDescription; // true
/* 0Dh */ bool mVerbIconShowLevel; // true
/* 0Eh */ bool mPaletteItemRolloverShowLevel; // true
/* 0Fh */ bool mVerbIconRolloverShowLevel; // true
/* 10h */ bool field_10;
/* 10h */ bool mShowHotKey;
/* 11h */ bool mVerbIconShowZeroLevel;
/* 14h */ int mVerbIconTriggerKey; // -1
/* 18h */ int field_18; // not initialized
/* 18h */ float mVerbIconLevel; // not initialized
/* 1Ch */ float mVerbIconMaxLevel;
/* 20h */ int field_20; // not initialized
/* 24h */ uint32_t mVerbIconCategory;
/* 24h */ eVerbIconCategory mVerbIconCategory;
/* 28h */ uint32_t mVerbIconRepresentativeAnimation; // -1
/* 2Ch */ Math::ColorRGBA mVerbIconColor;
/* 3Ch */ uint32_t mVerbIconRolloverLevelImageID;
Expand All @@ -61,5 +122,20 @@ namespace Editors
/* B4h */ ResourceKey mVerbIconStaticLayout;
/* C0h */ PropertyListPtr mpPropList;
};
ASSERT_SIZE(VerbIconData, 0xC4);
ASSERT_SIZE(VerbIconData, 0xC0);

namespace Addresses(VerbIconData)
{
DeclareAddress(AddRef);
DeclareAddress(Release);
DeclareAddress(Dispose);
DeclareAddress(AsInterface);
DeclareAddress(Init);
DeclareAddress(Shutdown);
DeclareAddress(SetArrayIndex);
DeclareAddress(SetHotKey);
DeclareAddress(GetIconName);
DeclareAddress(OnKeyDown);
DeclareAddress(GetIconDescription);
}
}