diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/hopkins/anim.cpp | 17 | ||||
-rw-r--r-- | engines/hopkins/anim.h | 6 | ||||
-rw-r--r-- | engines/hopkins/globals.h | 15 |
3 files changed, 30 insertions, 8 deletions
diff --git a/engines/hopkins/anim.cpp b/engines/hopkins/anim.cpp index b0e48a9e59..3977729b75 100644 --- a/engines/hopkins/anim.cpp +++ b/engines/hopkins/anim.cpp @@ -289,12 +289,19 @@ bool AnimationManager::REDRAW_ANIM() { return false; } -void AnimationManager::BOBANIM_ON(int a1) { - warning("TODO: BOBANIM_ON"); +void AnimationManager::BOBANIM_ON(int idx) { + if (GLOBALS.Bob[idx].field16) { + GLOBALS.Bob[idx].field16 = 0; + GLOBALS.Bob[idx].field10 = 5; + GLOBALS.Bob[idx].fieldC = 250; + GLOBALS.Bob[idx].field12 = 0; + GLOBALS.Bob[idx].field14 = 0; + } } -void AnimationManager::BOBANIM_OFF(int a1) { - warning("TODO: BOBANIM_OFF"); +void AnimationManager::BOBANIM_OFF(int idx) { + GLOBALS.Bob[idx].field16 = 1; + } void AnimationManager::CHARGE_ANIM(const Common::String &animName) { @@ -466,7 +473,7 @@ int AnimationManager::CHARGE_BANK_SPRITE1(int idx, const Common::String &filenam return result; } -void AnimationManager::set_offsetxy(byte *data, int idx, int xp, __int16 yp, bool isSize) { +void AnimationManager::set_offsetxy(byte *data, int idx, int xp, int yp, bool isSize) { byte *startP = data + 3; for (int i = idx; i; --i) startP += READ_LE_UINT32(startP) + 16; diff --git a/engines/hopkins/anim.h b/engines/hopkins/anim.h index dcd04bd36c..a85fc3cbad 100644 --- a/engines/hopkins/anim.h +++ b/engines/hopkins/anim.h @@ -45,11 +45,11 @@ public: void PLAY_ANM(const Common::String &filename, uint32 rate, uint32 rate2, uint32 rate3); bool REDRAW_ANIM(); - void BOBANIM_ON(int a1); - void BOBANIM_OFF(int a1); + void BOBANIM_ON(int idx); + void BOBANIM_OFF(int idx); void CHARGE_ANIM(const Common::String &animName); void CLEAR_ANIM(); - void set_offsetxy(byte *data, int idx, int xp, __int16 yp, bool isSize); + void set_offsetxy(byte *data, int idx, int xp, int yp, bool isSize); void RECHERCHE_ANIM(const byte *data, int idx, int nbytes); int Get_Largeur(const byte *data, int idx); int Get_Hauteur(const byte *data, int idx); diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h index 572d73ba8e..48b88babd8 100644 --- a/engines/hopkins/globals.h +++ b/engines/hopkins/globals.h @@ -83,6 +83,19 @@ struct BankItem { Common::String filename2; }; +struct BobItem { + int fieldC; + int field10; + int field12; + int field14; + int field16; +}; + +struct BlAnimItem { + uint32 v1; + uint32 v2; +}; + struct VBobItem { byte *field0; int field4; @@ -167,6 +180,8 @@ public: CarreZoneItem CarreZone[100]; BqeAnimItem Bqe_Anim[35]; BankItem Bank[8]; + BobItem Bob[36]; + BlAnimItem BL_ANIM[30]; VBobItem VBob[35]; ObjetWItem ObjetW[300]; byte *Winventaire; |