aboutsummaryrefslogtreecommitdiff
path: root/scumm/sprite_he.h
diff options
context:
space:
mode:
authorTravis Howell2005-05-23 09:30:43 +0000
committerTravis Howell2005-05-23 09:30:43 +0000
commit28e156df838341c2bb03e41f9ba22c51988358e9 (patch)
tree16560bc8a3f30ee75767ca48f83b031507cda405 /scumm/sprite_he.h
parent37d4e9499dd66963f3770c423dd50e655023beea (diff)
downloadscummvm-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.h119
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