mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-26 03:37:53 +00:00
ffc390e64c
Bug #1945716: "AGI: Fan(Kings Quest 2 1/4) - Sprite not erased". Added a workaround, since it is design flaw of our rendering system. svn-id: r49742
126 lines
2.6 KiB
C++
126 lines
2.6 KiB
C++
/* ScummVM - Graphic Adventure Engine
|
|
*
|
|
* ScummVM is the legal property of its developers, whose names
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
* file distributed with this source distribution.
|
|
*
|
|
* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
* $URL$
|
|
* $Id$
|
|
*
|
|
*/
|
|
|
|
#ifndef AGI_VIEW_H
|
|
#define AGI_VIEW_H
|
|
|
|
namespace Agi {
|
|
|
|
struct ViewCel {
|
|
uint8 height;
|
|
uint8 width;
|
|
uint8 transparency;
|
|
uint8 mirrorLoop;
|
|
uint8 mirror;
|
|
uint8 *data;
|
|
};
|
|
|
|
struct ViewLoop {
|
|
int numCels;
|
|
struct ViewCel *cel;
|
|
};
|
|
|
|
/**
|
|
* AGI view resource structure.
|
|
*/
|
|
struct AgiView {
|
|
int numLoops;
|
|
struct ViewLoop *loop;
|
|
bool agi256_2;
|
|
char *descr;
|
|
uint8 *rdata;
|
|
};
|
|
|
|
/**
|
|
* AGI view table entry
|
|
*/
|
|
struct VtEntry {
|
|
uint8 stepTime;
|
|
uint8 stepTimeCount;
|
|
uint8 entry;
|
|
int16 xPos;
|
|
int16 yPos;
|
|
uint8 currentView;
|
|
bool viewReplaced;
|
|
struct AgiView *viewData;
|
|
uint8 currentLoop;
|
|
uint8 numLoops;
|
|
struct ViewLoop *loopData;
|
|
uint8 currentCel;
|
|
uint8 numCels;
|
|
struct ViewCel *celData;
|
|
struct ViewCel *celData2;
|
|
int16 xPos2;
|
|
int16 yPos2;
|
|
void *s;
|
|
int16 xSize;
|
|
int16 ySize;
|
|
uint8 stepSize;
|
|
uint8 cycleTime;
|
|
uint8 cycleTimeCount;
|
|
uint8 direction;
|
|
|
|
#define MOTION_NORMAL 0
|
|
#define MOTION_WANDER 1
|
|
#define MOTION_FOLLOW_EGO 2
|
|
#define MOTION_MOVE_OBJ 3
|
|
uint8 motion;
|
|
|
|
#define CYCLE_NORMAL 0
|
|
#define CYCLE_END_OF_LOOP 1
|
|
#define CYCLE_REV_LOOP 2
|
|
#define CYCLE_REVERSE 3
|
|
uint8 cycle;
|
|
|
|
uint8 priority;
|
|
|
|
#define DRAWN 0x0001
|
|
#define IGNORE_BLOCKS 0x0002
|
|
#define FIXED_PRIORITY 0x0004
|
|
#define IGNORE_HORIZON 0x0008
|
|
#define UPDATE 0x0010
|
|
#define CYCLING 0x0020
|
|
#define ANIMATED 0x0040
|
|
#define MOTION 0x0080
|
|
#define ON_WATER 0x0100
|
|
#define IGNORE_OBJECTS 0x0200
|
|
#define UPDATE_POS 0x0400
|
|
#define ON_LAND 0x0800
|
|
#define DONTUPDATE 0x1000
|
|
#define FIX_LOOP 0x2000
|
|
#define DIDNT_MOVE 0x4000
|
|
#define ADJ_EGO_XY 0x8000
|
|
uint16 flags;
|
|
|
|
uint8 parm1;
|
|
uint8 parm2;
|
|
uint8 parm3;
|
|
uint8 parm4;
|
|
}; // struct vt_entry
|
|
|
|
} // End of namespace Agi
|
|
|
|
#endif /* AGI_VIEW_H */
|