diff options
author | Travis Howell | 2005-05-23 09:30:43 +0000 |
---|---|---|
committer | Travis Howell | 2005-05-23 09:30:43 +0000 |
commit | 28e156df838341c2bb03e41f9ba22c51988358e9 (patch) | |
tree | 16560bc8a3f30ee75767ca48f83b031507cda405 /scumm/sprite_he.h | |
parent | 37d4e9499dd66963f3770c423dd50e655023beea (diff) | |
download | scummvm-rg350-28e156df838341c2bb03e41f9ba22c51988358e9.tar.gz scummvm-rg350-28e156df838341c2bb03e41f9ba22c51988358e9.tar.bz2 scummvm-rg350-28e156df838341c2bb03e41f9ba22c51988358e9.zip |
Add Sprite class and move over related functions.
svn-id: r18230
Diffstat (limited to 'scumm/sprite_he.h')
-rw-r--r-- | scumm/sprite_he.h | 119 |
1 files changed, 118 insertions, 1 deletions
diff --git a/scumm/sprite_he.h b/scumm/sprite_he.h index 318821157a..ccfd6edea6 100644 --- a/scumm/sprite_he.h +++ b/scumm/sprite_he.h @@ -20,7 +20,7 @@ * */ -#ifndef SPRITE_HE_H +#if !defined(SPRITE_HE_H) && !defined(DISABLE_HE) #define SPRITE_HE_H namespace Scumm { @@ -97,6 +97,123 @@ struct SpriteGroup { int32 scale_y_ratio_div; }; +class ScummEngine_v90he; + +class Sprite { +public: + Sprite(ScummEngine_v90he *vm); + + SpriteInfo *_spriteTable; + SpriteGroup *_spriteGroups; + SpriteInfo **_activeSpritesTable; + + int32 _numSpritesToProcess; + int32 _varNumSpriteGroups; + int32 _varNumSprites; + int32 _varMaxSprites; + + void saveOrLoadSpriteData(Serializer *s, uint32 savegameVersion); + void spritesBlitToScreen(); + void spritesMarkDirty(bool checkZOrder); + void spritesSortActiveSprites(); + void spritesProcessWiz(bool arg); + void spritesUpdateImages(); + + void getSpriteBounds(int spriteId, bool checkGroup, Common::Rect &bound); + int findSpriteWithClassOf(int x, int y, int spriteGroupId, int d, int num, int *args); + int getSpriteclassFlags(int spriteId, int num, int *args); + int getSpriteFlagDoubleBuffered(int spriteId); + int getSpriteFlagYFlipped(int spriteId); + int getSpriteFlagXFlipped(int spriteId); + int getSpriteFlagActive(int spriteId); + int getSpriteFlagNeedPaletteRemap(int spriteId); + int getSpriteFlagDelayed(int spriteId); + int getSpriteFlagMarkDirty(int spriteId); + int getSpriteFlagHasImage(int spriteId); + int getSpriteResId(int spriteId); + int getSpriteResState(int spriteId); + int getSpriteGroupNum(int spriteId); + int getSpritePaletteNum(int spriteId); + int getSpriteZorderPriority(int spriteId); + int getSpritegrp_tx(int spriteId); + int getSpritegrp_ty(int spriteId); + int getSpriteField_44(int spriteId); + int getSpriteXmapNum(int spriteId); + int getSpritewizSize(int spriteId); + int getSpritezoom(int spriteId); + int getSpritedelayAmount(int spriteId); + int getSpritemaskImgResNum(int spriteId); + int getSpriteField_80(int spriteId); + int getSpriteField_8C_90(int spriteId, int type); + void getSpriteImageDim(int spriteId, int32 &w, int32 &h); + void getSpritetx_ty(int spriteId, int32 &tx, int32 &ty); + void getSpritedx_dy(int spriteId, int32 &dx, int32 &dy); + + int getGroupzorderPriority(int spriteGroupId); + int getGroupdstResNum(int spriteGroupId); + int getGroupScale_x_ratio_mul(int spriteGroupId); + int getGroupScale_x_ratio_div(int spriteGroupId); + int getGroupScale_y_ratio_mul(int spriteGroupId); + int getGroupScale_y_ratio_div(int spriteGroupId); + void getGrouptx_ty(int spriteGroupId, int32 &tx, int32 &ty); + + void setSpritePaletteNum(int spriteId, int value); + void setSpriteMaskImgResNum(int spriteId, int value); + void setSpriteField80(int spriteId, int value); + void setSpriteResetSprite(int spriteId); + void setSpriteResState(int spriteId, int value); + void setSpritetx_ty(int spriteId, int value1, int value2); + void setSpriteGroupNum(int spriteId, int value); + void setSpritedx_dy(int spriteId, int value1, int value2); + void setSpriteXmapNum(int spriteId, int value); + void setSpriteField44(int spriteId, int value1, int value2); + void setSpriteZorderPriority(int spriteId, int value); + void setSpriteInc_tx_ty(int spriteId, int value1, int value2); + void setSpriteZoom(int spriteId, int value); + void setSpriteAngle(int spriteId, int value); + void setSpriteFlagDoubleBuffered(int spriteId, int value); + void setSpriteFlagYFlipped(int spriteId, int value); + void setSpriteFlagXFlipped(int spriteId, int value); + void setSpriteFlagActive(int spriteId, int value); + void setSpriteFlagNeedPaletteRemap(int spriteId, int value); + void setSpriteFlagDelayed(int spriteId, int value); + void setSpriteFlagMarkDirty(int spriteId, int value); + void setSpriteFlagHasImage(int spriteId, int value); + void setSpriteDelay(int spriteId, int value); + void setSpriteSetClassFlag(int spriteId, int classId, int toggle); + void setSpriteResetClassFlags(int spriteId); + void setSpriteField84(int spriteId, int value); + void setSpriteField8C_90(int spriteId, int type, int value); + + void redrawSpriteGroup(int spriteGroupId); + void setGroupCase0_0(int spriteGroupId, int value1, int value2); + void setGroupCase0_1(int spriteGroupId, int value); + void setGroupCase0_2(int spriteGroupId, int value); + void setGroupCase0_3(int spriteGroupId, int value); + void setGroupCase0_4(int spriteGroupId); + void setGroupCase0_5(int spriteGroupId, int value); + void setGroupCase0_6(int spriteGroupId, int value); + void setGroupCase0_7(int spriteGroupId, int value); + void setGroupbbox(int spriteGroupId, int x1, int y1, int x2, int y2); + void setGroupzorderPriority(int spriteGroupId, int value); + void setGrouptx_ty(int spriteGroupId, int value1, int value2); + void setGroupinc_tx_ty(int spriteGroupId, int value1, int value2); + void setGroupdstResNum(int spriteGroupId, int value); + void setGroupscaling(int spriteGroupId); + void setGroupScale_x_ratio_mul(int spriteGroupId, int value); + void setGroupScale_x_ratio_div(int spriteGroupId, int value); + void setGroupScale_y_ratio_mul(int spriteGroupId, int value); + void setGroupScale_y_ratio_div(int spriteGroupId, int value); + void setGroupflagClipBoxAnd(int spriteGroupId); + + void spritesAllocTables(int numSprites, int numGroups, int numMaxSprites); + void spritesResetGroup(int spriteGroupId); + void spritesResetTables(bool refreshScreen); + void spriteAddImageToList(int spriteId, int imageNum, int *spriteIdptr); +private: + ScummEngine_v90he *_vm; +}; + } // End of namespace Scumm #endif |