mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-28 20:55:19 +00:00
127 lines
2.6 KiB
C++
127 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.
|
|
*
|
|
*/
|
|
|
|
#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;
|
|
};
|
|
|
|
enum MotionType {
|
|
kMotionNormal = 0,
|
|
kMotionWander = 1,
|
|
kMotionFollowEgo = 2,
|
|
kMotionMoveObj = 3
|
|
};
|
|
|
|
enum CycleType {
|
|
kCycleNormal = 0,
|
|
kCycleEndOfLoop = 1,
|
|
kCycleRevLoop = 2,
|
|
kCycleReverse = 3
|
|
};
|
|
|
|
enum ViewFlags {
|
|
fDrawn = (1 << 0),
|
|
fIgnoreBlocks = (1 << 1),
|
|
fFixedPriority = (1 << 2),
|
|
fIgnoreHorizon = (1 << 3),
|
|
fUpdate = (1 << 4),
|
|
fCycling = (1 << 5),
|
|
fAnimated = (1 << 6),
|
|
fMotion = (1 << 7),
|
|
fOnWater = (1 << 8),
|
|
fIgnoreObjects = (1 << 9),
|
|
fUpdatePos = (1 << 10),
|
|
fOnLand = (1 << 11),
|
|
fDontupdate = (1 << 12),
|
|
fFixLoop = (1 << 13),
|
|
fDidntMove = (1 << 14),
|
|
fAdjEgoXY = (1 << 15)
|
|
};
|
|
|
|
/**
|
|
* 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;
|
|
MotionType motion;
|
|
CycleType cycle;
|
|
uint8 priority;
|
|
uint16 flags;
|
|
uint8 parm1;
|
|
uint8 parm2;
|
|
uint8 parm3;
|
|
uint8 parm4;
|
|
}; // struct vt_entry
|
|
|
|
} // End of namespace Agi
|
|
|
|
#endif /* AGI_VIEW_H */
|