diff options
| author | Max Horn | 2006-02-11 22:45:04 +0000 | 
|---|---|---|
| committer | Max Horn | 2006-02-11 22:45:04 +0000 | 
| commit | 26ee630756ebdd7c96bccede0881a8c8b98e8f2b (patch) | |
| tree | 26e378d5cf990a2b81c2c96e9e683a7f333b62e8 /lure/res_struct.h | |
| parent | 2a9a0d4211b1ea5723f1409d91cb95de8984429e (diff) | |
| download | scummvm-rg350-26ee630756ebdd7c96bccede0881a8c8b98e8f2b.tar.gz scummvm-rg350-26ee630756ebdd7c96bccede0881a8c8b98e8f2b.tar.bz2 scummvm-rg350-26ee630756ebdd7c96bccede0881a8c8b98e8f2b.zip  | |
Moved engines to the new engines/ directory
svn-id: r20582
Diffstat (limited to 'lure/res_struct.h')
| -rw-r--r-- | lure/res_struct.h | 401 | 
1 files changed, 0 insertions, 401 deletions
diff --git a/lure/res_struct.h b/lure/res_struct.h deleted file mode 100644 index 418fb9fbdd..0000000000 --- a/lure/res_struct.h +++ /dev/null @@ -1,401 +0,0 @@ -/* ScummVM - Scumm Interpreter - * Copyright (C) 2005-2006 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#ifndef __lure_resstruct_h__ -#define __lure_resstruct_h__ - -#include "lure/luredefs.h" -#include "common/list.h" - -namespace Lure { - -extern const char *actionList[]; - -/*-------------------------------------------------------------------------*/ -/* Structure definitions                                                   */ -/*                                                                         */ -/*-------------------------------------------------------------------------*/ - -#if !defined(__GNUC__) -#pragma START_PACK_STRUCTS -#endif - -struct HotspotResource { -	uint16 hotspotId; -	uint16 nameId; -	uint16 descId; -	uint16 descId2; -	uint32 actions; -	uint16 actionsOffset; -	uint16 roomNumber; -	byte layer; -	byte scriptLoadFlag; -	uint16 loadOffset; -	int16 startX; -	int16 startY; -	uint16 width; -	uint16 height; -	uint16 colourOffset; -	uint16 animRecordId; -	uint16 sequenceOffset; -	uint16 tickProcOffset; -	uint16 tickTimeout; -} GCC_PACK; - -struct HotspotAnimResource { -	uint16 animRecordId; -	uint16 animId; -	uint16 flags; -	uint16 upOffset; -	uint16 downOffset; -	uint16 leftOffset; -	uint16 rightOffset; -	uint8 upFrame; -	uint8 downFrame; -	uint8 leftFrame; -	uint8 rightFrame; -} GCC_PACK; - -struct MovementResource { -	uint16 frameNumber; -	int16 xChange; -	int16 yChange; -} GCC_PACK; - - -struct RoomResource { -	uint16 roomNumber; -	uint16 descId; -	uint16 numLayers; -	uint16 layers[4]; -	uint16 sequenceOffset; -	uint16 numExits; -} GCC_PACK; - -struct RoomExitResource { -	int16 xs, xe, ys, ye; -	uint16 sequenceOffset; -	uint8 newRoom; -	uint8 direction; -	int16 newRoomX, newRoomY; -} GCC_PACK; - -struct HotspotOverrideResource { -	uint16 hotspotId; -	int16 xs, xe, ys, ye; -} GCC_PACK; - -struct RoomExitHotspotRecord { -	uint16 hotspotId; -	int16 xs, xe; -	int16 ys, ye; -	uint16 cursorNum; -	uint16 destRoomNumber; -} GCC_PACK; - -struct RoomExitJoinRecord { -	uint16 hotspot1Id; -	byte h1CurrentFrame; -	byte h1DestFrame; -	uint16 h1Unknown; -	uint16 hotspot2Id; -	byte h2CurrentFrame; -	byte h2DestFrame; -	uint16 h2Unknown; -	byte blocked; -	uint32 unknown; -} GCC_PACK; - -struct HotspotActionRecord { -	byte action; -	uint16 sequenceOffset; -} GCC_PACK; - -struct FileEntry { -	uint16 id; -	byte unused; -	byte sizeExtension; -	uint16 size; -	uint16 offset; -} GCC_PACK; - -struct VersionStructure { -	uint16 id; -	byte vMajor; -	byte vMinor; -} GCC_PACK; - -#if !defined(__GNUC__) -#pragma END_PACK_STRUCTS -#endif - -// Class template for a derived list that destroys the contained -// object when the record containing it is destroyed. It's not -// perfect, since the underlying list doesn't have virtual -// methods, but it's sufficient for my usage - -template <class T> -class ManagedList: public Common::List<T> { -public: -	~ManagedList() { -		clear(); -	} - -	void clear() { -		typename Common::List<T>::iterator i; -		for (i = Common::List<T>::begin(); i != Common::List<T>::end(); ++i) -			delete *i; -		Common::List<T>::clear();		 -	} - -	typename Common::List<T>::iterator erase(typename Common::List<T>::iterator pos) { -		delete *pos; -		return Common::List<T>::erase(pos); -	} - -	typename Common::List<T>::iterator erase(typename Common::List<T>::iterator first,  -			typename Common::List<T>::iterator last) { -		typename Common::List<T>::iterator i; -		for (i = first; i != last; ++i) -			delete *i; -		return Common::List<T>::erase(first, last); -	} -}; - -// Enumeration used for direction facings - -enum Direction {UP, DOWN, LEFT, RIGHT, NO_DIRECTION}; - -// Support classes to hold loaded resources - -class RoomExitHotspotData { -public: -	RoomExitHotspotData(RoomExitHotspotRecord *rec); - -	uint16 hotspotId; -	int16 xs, xe; -	int16 ys, ye; -	uint16 cursorNum; -	uint16 destRoomNumber; -}; - -typedef ManagedList<RoomExitHotspotData *> RoomExitHotspotList; - -class RoomExitData { -public: -	RoomExitData(RoomExitResource *rec); -	bool insideRect(int16 xp, int16 yp); - -	int16 xs, xe, ys, ye; -	uint16 sequenceOffset; -	Direction direction; -	uint8 roomNumber; -	uint16 x, y; -}; - -class RoomExitList: public ManagedList<RoomExitData *> { -public: -	RoomExitData *checkExits(int16 xp, int16 yp); -}; - -#define MAX_NUM_LAYERS 4 - -class RoomData { -public: -	RoomData(RoomResource *rec); - -	uint16 roomNumber; -	uint16 descId; -	uint16 numLayers; -	uint16 layers[MAX_NUM_LAYERS]; -	uint16 sequenceOffset; -	RoomExitHotspotList exitHotspots; -	RoomExitList exits; -}; - -typedef ManagedList<RoomData *> RoomDataList; - -class RoomExitJoinData { -public: -	RoomExitJoinData(RoomExitJoinRecord *rec); - -	uint16 hotspot1Id; -	byte h1CurrentFrame; -	byte h1DestFrame; -	uint16 h1Unknown; -	uint16 hotspot2Id; -	byte h2CurrentFrame; -	byte h2DestFrame; -	uint16 h2Unknown; -	byte blocked; -	uint32 unknown; -}; - -typedef ManagedList<RoomExitJoinData *> RoomExitJoinList; - -class HotspotActionData { -public: -	HotspotActionData(HotspotActionRecord *rec); - -	Action action; -	uint16 sequenceOffset; -}; - -class HotspotActionList: public ManagedList<HotspotActionData *> { -public: -	uint16 recordId; - -	HotspotActionList(uint16 id, byte *data); -	uint16 getActionOffset(Action action); -}; - -class HotspotActionSet: public ManagedList<HotspotActionList *> { -public: -	HotspotActionList *getActions(uint16 recordId); -}; - -class HotspotData { -public: -	HotspotData(HotspotResource *rec); -	 -	uint16 hotspotId; -	uint16 nameId; -	uint16 descId; -	uint16 descId2; -	uint32 actions; -	uint16 actionsOffset; -	byte flags; -	uint16 roomNumber; -	byte layer; -	byte scriptLoadFlag; -	uint16 loadOffset; -	int16 startX; -	int16 startY; -	uint16 width; -	uint16 height; -	uint16 colourOffset; -	uint16 animRecordId; -	uint16 sequenceOffset; -	uint16 tickProcOffset; -	uint16 tickTimeout; -}; - -typedef ManagedList<HotspotData *> HotspotDataList; - -class HotspotOverrideData { -public: -	HotspotOverrideData(HotspotOverrideResource *rec); - -	uint16 hotspotId; -	int16 xs, xe, ys, ye; -}; - -typedef ManagedList<HotspotOverrideData *> HotspotOverrideList; - -class MovementData { -public: -	MovementData(MovementResource *); - -	uint16 frameNumber; -	int16 xChange; -	int16 yChange; -}; - -class MovementDataList: public ManagedList<MovementData *> { -public: -	bool getFrame(uint16 currentFrame, int16 &xChange, int16 &yChange,  -		uint16 &nextFrame); -}; - -class HotspotAnimData { -public: -	HotspotAnimData(HotspotAnimResource *rec); - -	uint16 animRecordId; -	uint16 animId; -	uint16 flags; -	uint8 upFrame; -	uint8 downFrame; -	uint8 leftFrame; -	uint8 rightFrame; - -	MovementDataList leftFrames, rightFrames; -	MovementDataList upFrames, downFrames; -}; - -typedef ManagedList<HotspotAnimData *> HotspotAnimList; - -// The following classes hold any sequence offsets that are being delayed - -class SequenceDelayData { -	friend class SequenceDelayList; -private: -	uint32 _timeoutCtr; -	uint16 _sequenceOffset; -public: -	SequenceDelayData(uint16 delay, uint16 seqOffset); -}; - -class SequenceDelayList: public ManagedList<SequenceDelayData *> { -public: -	void addSequence(uint16 delay, uint16 seqOffset); -	void tick(); -}; - -// The following class holds the field list used by the script engine as  -// well as miscellaneous fields used by the game.                           - -#define NUM_VALUE_FIELDS 85 - -enum FieldName { -	ROOM_NUMBER = 0,  -	CHARACTER_HOTSPOT_ID = 1,  -	USE_HOTSPOT_ID = 2, -	ACTIVE_HOTSPOT_ID = 3, -	SEQUENCE_RESULT = 4, -	GENERAL = 5, -	NEW_ROOM_NUMBER = 7, -	GENERAL_STATUS = 8, -	TORCH_HIDE = 10, -	PRISONER_DEAD = 15, -	BOTTLE_FILLED = 18, -	SACK_CUT = 20 -}; - -class ValueTableData { -private: -	uint16 _numGroats; -	uint16 _fieldList[NUM_VALUE_FIELDS]; -	bool isKnownField(uint16 fieldIndex); -public: -	ValueTableData(); -	uint16 getField(uint16 fieldIndex); -	uint16 getField(FieldName fieldName); - -	void setField(uint16 fieldIndex, uint16 value); -	void setField(FieldName fieldName, uint16 value); -	uint16 &numGroats() { return _numGroats; } -}; - -} // End of namespace Lure - -#endif  | 
