mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-29 05:03:29 +00:00
9aaff636aa
svn-id: r17485
200 lines
4.6 KiB
C++
200 lines
4.6 KiB
C++
/* ScummVM - Scumm Interpreter
|
|
* Copyright (C) 2004 Ivan Dubrov
|
|
* Copyright (C) 2004-2005 The ScummVM project
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*
|
|
* $Header$
|
|
*
|
|
*/
|
|
#ifndef GOB_MULT_H
|
|
#define GOB_MULT_H
|
|
|
|
#include "gob/sound.h"
|
|
|
|
namespace Gob {
|
|
|
|
#pragma START_PACK_STRUCTS
|
|
typedef struct Mult_AnimData {
|
|
char animation;
|
|
char layer;
|
|
char frame;
|
|
char animType;
|
|
char order;
|
|
char isPaused;
|
|
char isStatic;
|
|
char maxTick;
|
|
char unknown;
|
|
char newLayer;
|
|
char newAnimation;
|
|
byte intersected;
|
|
char newCycle;
|
|
} GCC_PACK Mult_AnimData;
|
|
|
|
typedef struct Mult_Object {
|
|
int32 *pPosX;
|
|
int32 *pPosY;
|
|
Mult_AnimData *pAnimData;
|
|
int16 tick;
|
|
int16 lastLeft;
|
|
int16 lastRight;
|
|
int16 lastTop;
|
|
int16 lastBottom;
|
|
} Mult_Object;
|
|
|
|
// Mult
|
|
typedef struct Mult_StaticKey {
|
|
int16 frame;
|
|
int16 layer;
|
|
} GCC_PACK Mult_StaticKey;
|
|
|
|
typedef struct Mult_AnimKey {
|
|
int16 frame;
|
|
int16 layer;
|
|
int16 posX;
|
|
int16 posY;
|
|
int16 order;
|
|
} GCC_PACK Mult_AnimKey;
|
|
|
|
typedef struct Mult_TextKey {
|
|
int16 frame;
|
|
int16 cmd;
|
|
int16 unknown0[9];
|
|
int16 index;
|
|
int16 unknown1[2];
|
|
} GCC_PACK Mult_TextKey;
|
|
|
|
typedef struct Mult_PalKey {
|
|
int16 frame;
|
|
int16 cmd;
|
|
int16 rates[4];
|
|
int16 unknown0;
|
|
int16 unknown1;
|
|
char subst[16][4];
|
|
} GCC_PACK Mult_PalKey;
|
|
|
|
typedef struct Mult_PalFadeKey {
|
|
int16 frame;
|
|
int16 fade;
|
|
int16 palIndex;
|
|
char flag;
|
|
} GCC_PACK Mult_PalFadeKey;
|
|
|
|
typedef struct Mult_SndKey {
|
|
int16 frame;
|
|
int16 cmd;
|
|
int16 freq;
|
|
int16 channel;
|
|
int16 repCount;
|
|
int16 resId;
|
|
int16 soundIndex;
|
|
} GCC_PACK Mult_SndKey;
|
|
#pragma END_PACK_STRUCTS
|
|
|
|
// Globals
|
|
|
|
extern Mult_Object *mult_objects;
|
|
extern int16 *mult_renderData;
|
|
extern int16 mult_objCount;
|
|
extern SurfaceDesc *mult_underAnimSurf;
|
|
|
|
extern char *mult_multData;
|
|
extern int16 mult_frame;
|
|
extern char mult_doPalSubst;
|
|
extern int16 mult_counter;
|
|
extern int16 mult_frameRate;
|
|
|
|
extern int32 *mult_animArrayX;
|
|
extern int32 *mult_animArrayY;
|
|
|
|
extern Mult_AnimData *mult_animArrayData;
|
|
|
|
extern int16 mult_index;
|
|
|
|
// Static keys
|
|
extern int16 mult_staticKeysCount;
|
|
extern Mult_StaticKey *mult_staticKeys;
|
|
extern int16 mult_staticIndices[10];
|
|
|
|
// Anim keys
|
|
extern Mult_AnimKey *mult_animKeys[4];
|
|
extern int16 mult_animKeysCount[4];
|
|
extern int16 mult_animLayer;
|
|
extern int16 mult_animIndices[10];
|
|
|
|
// Text keys
|
|
extern int16 mult_textKeysCount;
|
|
extern Mult_TextKey *mult_textKeys;
|
|
|
|
extern int16 mult_frameStart;
|
|
|
|
// Palette keys
|
|
extern int16 mult_palKeyIndex;
|
|
extern int16 mult_palKeysCount;
|
|
extern Mult_PalKey *mult_palKeys;
|
|
extern Color *mult_oldPalette;
|
|
extern Color mult_palAnimPalette[256];
|
|
extern int16 mult_palAnimKey;
|
|
extern int16 mult_palAnimIndices[4];
|
|
extern int16 mult_palAnimRed[4];
|
|
extern int16 mult_palAnimGreen[4];
|
|
extern int16 mult_palAnimBlue[4];
|
|
|
|
// Palette fading
|
|
extern Mult_PalFadeKey *mult_palFadeKeys;
|
|
extern int16 mult_palFadeKeysCount;
|
|
extern char mult_palFadingRed;
|
|
extern char mult_palFadingGreen;
|
|
extern char mult_palFadingBlue;
|
|
|
|
extern char mult_animDataAllocated;
|
|
|
|
extern char *mult_dataPtr;
|
|
extern int16 mult_staticLoaded[10];
|
|
extern int16 mult_animLoaded[10];
|
|
extern int16 mult_sndSlotsCount;
|
|
|
|
// Sound keys
|
|
extern int16 mult_sndKeysCount;
|
|
extern Mult_SndKey *mult_sndKeys;
|
|
|
|
void mult_playSound(Snd_SoundDesc * soundDesc, int16 repCount, int16 freq,
|
|
int16 negFreq);
|
|
void mult_zeroMultData(void);
|
|
void mult_loadMult(int16 resId);
|
|
void mult_freeMultKeys(void);
|
|
void mult_checkFreeMult(void);
|
|
void mult_playMult(int16 startFrame, int16 endFrame, char checkEscape,
|
|
char handleMouse);
|
|
void mult_animate(void);
|
|
void mult_interGetObjAnimSize(void);
|
|
void mult_interInitMult(void);
|
|
void mult_freeMult(void);
|
|
void mult_interLoadMult(void);
|
|
void mult_freeAll(void);
|
|
void mult_initAll(void);
|
|
void mult_playSound(Snd_SoundDesc * soundDesc, int16 repCount, int16 freq,
|
|
int16 negFreq);
|
|
void mult_playMult(int16 startFrame, int16 endFrame, char checkEscape,
|
|
char handleMouse);
|
|
void mult_zeroMultData(void);
|
|
void mult_loadMult(int16 resId);
|
|
void mult_freeMultKeys(void);
|
|
void mult_checkFreeMult(void);
|
|
|
|
} // End of namespace Gob
|
|
|
|
#endif /* __MULT_H */
|