Mercurial > mm7
diff Engine/Graphics/Sprites.h @ 2496:5abd8fc8f1c6
for ITEM_ARTIFACT_LADYS_ESCORT
author | Ritor1 |
---|---|
date | Thu, 18 Sep 2014 17:38:54 +0600 |
parents | |
children | c7264ab7132f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Engine/Graphics/Sprites.h Thu Sep 18 17:38:54 2014 +0600 @@ -0,0 +1,88 @@ +#pragma once + + +/* 18 */ +#pragma pack(push, 1) +class Sprite //28h +{ +public: + void Release(); + + const char *pName; //0 + int uPaletteID; //4 + struct IDirectDrawSurface4 *pTextureSurface; //8 + struct IDirect3DTexture2 *pTexture; //ch + int uAreaX; //10h + int uAreaY; //14h + int uBufferWidth; //18h + int uBufferHeight; //1ch + int uAreaWidth; //20h + int uAreaHeight; //24h +}; +#pragma pack(pop) + + +/* 42 */ +#pragma pack(push, 1) +struct SpriteFrame_mm6 +{ + char pIconName[12]; + char pTextureName[12]; //c + __int16 pHwSpriteIDs[8]; //18h + int scale; //28h + int uFlags; //2c + __int16 uGlowRadius; //30 + __int16 uPaletteID; //32 + __int16 uPaletteIndex; + __int16 uAnimTime; + //__int16 uAnimLength; + //__int16 _pad; +}; + +class SpriteFrame: public SpriteFrame_mm6 +{ +public: + __int16 uAnimLength; + __int16 _pad; +}; +#pragma pack(pop) + +/* 43 */ +#pragma pack(push, 1) +struct SpriteFrameTable +{ + //----- (0044D4BA) -------------------------------------------------------- + inline SpriteFrameTable() + { + uNumSpriteFrames = 0; + pSpriteSFrames = nullptr; + pSpritePFrames = nullptr; + pSpriteEFrames = nullptr; + } + void ToFile(); + void FromFile(void *data_mm6, void *data_mm7, void *data_mm8); + bool FromFileTxt(const char *Args); + void ReleaseSFrames(); + void ResetSomeSpriteFlags(); + void InitializeSprite(signed int uSpriteID); + signed int FastFindSprite(char *pSpriteName); + int BinarySearch(const char *pSpriteName); + SpriteFrame *GetFrame(unsigned int uSpriteID, unsigned int uTime); + SpriteFrame *GetFrameBy_x(unsigned int uSpriteID, signed int a3); + + signed int uNumSpriteFrames; + unsigned int uNumEFrames;//field_4; + int unused_field; //field_8 + SpriteFrame *pSpriteSFrames; //0c + SpriteFrame **pSpritePFrames; //10h + __int16 *pSpriteEFrames; //14h +}; +#pragma pack(pop) + + + + +void __fastcall _46E26D_collide_against_sprites(signed int a1, signed int a2); + + +extern struct SpriteFrameTable *pSpriteFrameTable; \ No newline at end of file