diff options
author | Matthew Hoops | 2011-09-02 00:27:13 -0400 |
---|---|---|
committer | Matthew Hoops | 2011-09-02 00:27:13 -0400 |
commit | e642906cdda1d943bcbc875c752bb7ba69c2b81e (patch) | |
tree | 492bd4dfd1b78201da7b38ad36d9db86eb17d3d8 /engines/pegasus/types.h | |
parent | 3239002dae193fa92cceb973d0cae1ffe9fef8a4 (diff) | |
download | scummvm-rg350-e642906cdda1d943bcbc875c752bb7ba69c2b81e.tar.gz scummvm-rg350-e642906cdda1d943bcbc875c752bb7ba69c2b81e.tar.bz2 scummvm-rg350-e642906cdda1d943bcbc875c752bb7ba69c2b81e.zip |
PEGASUS: Begin restructuring the game state classes
The entire game state should now be functional
Diffstat (limited to 'engines/pegasus/types.h')
-rwxr-xr-x | engines/pegasus/types.h | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/engines/pegasus/types.h b/engines/pegasus/types.h new file mode 100755 index 0000000000..6c51c930eb --- /dev/null +++ b/engines/pegasus/types.h @@ -0,0 +1,185 @@ +/* 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. + * + * Additional copyright for this file: + * Copyright (C) 1995-1997 Presto Studios, Inc. + * + * 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 PEGASUS_TYPES_H +#define PEGASUS_TYPES_H + +#include "common/scummsys.h" + +namespace Pegasus { + +// TODO: All of the "tMM"-prefixed defines should be replaced eventually +// TODO: Probably all of these don't really need to be typedef'd... +typedef int8 tMM8BitS; +typedef uint8 tMM8BitU; + +typedef int16 tMM16BitS; +typedef uint16 tMM16BitU; + +typedef int32 tMM32BitS; +typedef uint32 tMM32BitU; + +typedef tMM8BitS tMM8BitID; +typedef tMM16BitS tMM16BitID; +typedef tMM32BitS tMM32BitID; + +typedef tMM8BitU tMM8BitFlags; +typedef tMM16BitU tMM16BitFlags; +typedef tMM32BitU tMM32BitFlags; + +typedef tMM32BitID tDisplayElementID; +typedef tMM32BitS tDisplayOrder; + +typedef tMM16BitID tHotSpotID; +typedef tMM32BitFlags tHotSpotFlags; + +typedef tMM8BitFlags tButtonState; +typedef tMM32BitFlags tInputBits; + +typedef tMM8BitU tKeyMapType[16]; +typedef tMM8BitU tKeyType; +typedef tMM8BitU tKeyMapIndexType; +typedef tMM8BitU tKeyMapBitType; + +typedef tMM32BitID tNotificationID; +typedef tMM32BitFlags tNotificationFlags; + +// Mac types. +typedef tMM16BitS tResIDType; +typedef tMM16BitS tCoordType; +typedef tMM16BitS tQDCopyMode; +typedef tMM16BitS tResItemCountType; + +enum tCopyMode { + kNoMask, + kUseClipArea, + kUseTransparency +}; + +enum tSlideDirection { + kSlideLeftMask = 1, + kSlideRightMask = kSlideLeftMask << 1, + kSlideUpMask = kSlideRightMask << 1 << 1, + kSlideDownMask = kSlideUpMask << 1, + + kSlideHorizMask = kSlideLeftMask | kSlideRightMask, + kSlideVertMask = kSlideUpMask | kSlideDownMask, + + kSlideUpLeftMask = kSlideLeftMask | kSlideUpMask, + kSlideUpRightMask = kSlideRightMask | kSlideUpMask, + kSlideDownLeftMask = kSlideLeftMask | kSlideDownMask, + kSlideDownRightMask = kSlideRightMask | kSlideDownMask +}; + +// ScummVM QuickTime/QuickDraw replacement types +typedef uint TimeValue; +typedef uint TimeScale; +// TODO: Fixed and RGBColor + +typedef tMM16BitID tGameID; + +typedef tGameID tItemID; +typedef tGameID tActorID; +typedef tGameID tRoomID; +typedef tGameID tNeighborhoodID; +typedef tMM8BitU tAlternateID; +typedef tMM8BitS tHotSpotActivationID; + +typedef tMM16BitS tWeightType; + +typedef tMM8BitU tDirectionConstant; +typedef tMM8BitU tTurnDirection; + +// Meant to be room in low 16 bits and direction in high 16 bits. +typedef tMM32BitU tRoomViewID; + +#define MakeRoomView(room, direction) (((tRoomViewID) (room)) | (((tRoomViewID) (direction)) << 16)) + +typedef tMM32BitU tExtraID; + +typedef tMM16BitS tGameMode; + +typedef tMM16BitS tWeightType; + +typedef tMM16BitS tItemState; + +typedef tMM8BitS tDeathReason; + +typedef tMM32BitS tGameMenuCommand; + +typedef tMM32BitS tGameScoreType; + +typedef long tCanMoveForwardReason; + +typedef long tCanTurnReason; + +typedef long tCanOpenDoorReason; + +enum tInventoryResult { + kInventoryOK, + kTooMuchWeight, + kItemNotInInventory +}; + +typedef tMM32BitID tInteractionID; + +typedef tMM32BitID tAIConditionID; + +enum tEnergyStage { + kStageNoStage, + kStageCasual, // more than 50% energy + kStageWorried, // more than 25% energy + kStageNervous, // more than 5% energy + kStagePanicStricken // less than 5% energy +}; + +enum tNoradSubPrepState { + kSubNotPrepped, + kSubPrepped, + kSubDamaged +}; + +enum tLowerClientSignature { + kNoClientSignature, + kInventorySignature, + kBiochipSignature, + kAISignature +}; + +enum tLowerAreaSignature { + kLeftAreaSignature, + kMiddleAreaSignature, + kRightAreaSignature +}; + +enum tAirQuality { + kAirQualityGood, + kAirQualityDirty, + kAirQualityVacuum +}; + +} // End of namespace Pegasus + +#endif |