aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rwxr-xr-xengines/pegasus/Game_Shell/CInventory.cpp175
-rwxr-xr-xengines/pegasus/Game_Shell/CItem.cpp111
-rwxr-xr-xengines/pegasus/MMShell/Utilities/MMIDObject.h14
-rwxr-xr-xengines/pegasus/gamestate.cpp8
-rwxr-xr-xengines/pegasus/gamestate.h6
-rwxr-xr-xengines/pegasus/items/inventory.cpp175
-rwxr-xr-xengines/pegasus/items/inventory.h (renamed from engines/pegasus/Game_Shell/CInventory.h)58
-rwxr-xr-xengines/pegasus/items/item.cpp111
-rwxr-xr-xengines/pegasus/items/item.h (renamed from engines/pegasus/Game_Shell/CItem.h)48
-rwxr-xr-xengines/pegasus/items/itemlist.cpp (renamed from engines/pegasus/Game_Shell/CItemList.cpp)28
-rwxr-xr-xengines/pegasus/items/itemlist.h (renamed from engines/pegasus/Game_Shell/CItemList.h)22
-rw-r--r--engines/pegasus/menu.cpp15
-rw-r--r--engines/pegasus/module.mk8
-rwxr-xr-xengines/pegasus/sound.cpp (renamed from engines/pegasus/MMShell/Sounds/MMSound.cpp)56
-rwxr-xr-xengines/pegasus/sound.h (renamed from engines/pegasus/MMShell/Sounds/MMSound.h)30
15 files changed, 432 insertions, 433 deletions
diff --git a/engines/pegasus/Game_Shell/CInventory.cpp b/engines/pegasus/Game_Shell/CInventory.cpp
deleted file mode 100755
index 64e62b4406..0000000000
--- a/engines/pegasus/Game_Shell/CInventory.cpp
+++ /dev/null
@@ -1,175 +0,0 @@
-/* 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.
- *
- */
-
-#include "pegasus/constants.h"
-#include "pegasus/Game_Shell/CItem.h"
-#include "pegasus/Game_Shell/CInventory.h"
-
-namespace Pegasus {
-
-CInventory::CInventory() {
- fWeightLimit = 100;
- fOwnerID = kNoActorID;
- fReferenceCount = 0;
-}
-
-CInventory::~CInventory() {
-}
-
-void CInventory::SetWeightLimit(tWeightType limit) {
- fWeightLimit = limit;
- // *** What to do if the new weight limit is greater than the current weight?
-}
-
-tWeightType CInventory::GetWeight() {
- tWeightType result = 0;
-
- for (CItemIterator it = fInventoryList.begin(); it != fInventoryList.end(); it++)
- result += (*it)->GetItemWeight();
-
- return result;
-}
-
-// If the item already belongs, just return kInventoryOK.
-tInventoryResult CInventory::AddItem(CItem *item) {
- if (ItemInInventory(item))
- return kInventoryOK;
-
- if (GetWeight() + item->GetItemWeight() > fWeightLimit)
- return kTooMuchWeight;
-
- fInventoryList.push_back(item);
- item->SetItemOwner(fOwnerID);
-
- ++fReferenceCount;
- return kInventoryOK;
-}
-
-tInventoryResult CInventory::RemoveItem(CItem *item) {
- for (CItemIterator it = fInventoryList.begin(); it != fInventoryList.end(); it++) {
- if (*it == item) {
- fInventoryList.erase(it);
- item->SetItemOwner(kNoActorID);
-
- ++fReferenceCount;
- return kInventoryOK;
- }
- }
-
- return kItemNotInInventory;
-}
-
-tInventoryResult CInventory::RemoveItem(tItemID id) {
- CItem *item = FindItemByID(id);
-
- if (item) {
- fInventoryList.remove(item);
- item->SetItemOwner(kNoActorID);
-
- ++fReferenceCount;
- return kInventoryOK;
- }
-
- return kItemNotInInventory;
-}
-
-void CInventory::RemoveAllItems() {
- fInventoryList.clear();
- ++fReferenceCount;
-}
-
-bool CInventory::ItemInInventory(CItem *item) {
- for (CItemIterator it = fInventoryList.begin(); it != fInventoryList.end(); it++)
- if (*it == item)
- return true;
-
- return false;
-}
-
-bool CInventory::ItemInInventory(tItemID id) {
- return FindItemByID(id) != NULL;
-}
-
-CItem *CInventory::GetItemAt(int32 index) {
- int32 i = 0;
- for (CItemIterator it = fInventoryList.begin(); it != fInventoryList.end(); it++, i++)
- if (i == index)
- return *it;
-
- return 0;
-}
-
-tItemID CInventory::GetItemIDAt(int32 index) {
- CItem *item = GetItemAt(index);
-
- if (item)
- return item->GetObjectID();
-
- return kNoItemID;
-}
-
-CItem *CInventory::FindItemByID(tItemID id) {
- return fInventoryList.FindItemByID(id);
-}
-
-// Return -1 if not found.
-
-int32 CInventory::FindIndexOf(CItem *item) {
- uint32 i = 0;
- for (CItemIterator it = fInventoryList.begin(); it != fInventoryList.end(); it++, i++)
- if (*it == item)
- return i;
-
- return -1;
-}
-
-// Return -1 if not found.
-
-int32 CInventory::FindIndexOf(tItemID id) {
- uint32 i = 0;
- for (CItemIterator it = fInventoryList.begin(); it != fInventoryList.end(); it++, i++)
- if ((*it)->GetObjectID() == id)
- return i;
-
- return -1;
-}
-
-tWeightType CInventory::GetWeightLimit() {
- return fWeightLimit;
-}
-
-int32 CInventory::GetNumItems() {
- return fInventoryList.size();
-}
-
-void CInventory::SetOwnerID(const tActorID id) {
- fOwnerID = id;
-}
-
-tActorID CInventory::GetOwnerID() const {
- return fOwnerID;
-}
-
-} // End of namespae Pegasus
diff --git a/engines/pegasus/Game_Shell/CItem.cpp b/engines/pegasus/Game_Shell/CItem.cpp
deleted file mode 100755
index b96c24ce49..0000000000
--- a/engines/pegasus/Game_Shell/CItem.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-/* 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.
- *
- */
-
-#include "common/error.h"
-#include "common/stream.h"
-
-#include "pegasus/constants.h"
-#include "pegasus/Game_Shell/CItem.h"
-#include "pegasus/Game_Shell/CItemList.h"
-
-namespace Pegasus {
-
-CItem::CItem(const tItemID id, const tNeighborhoodID neighborhood, const tRoomID room, const tDirectionConstant direction) : MMIDObject(id) {
- fItemNeighborhood = neighborhood;
- fItemRoom = room;
- fItemDirection = direction;
- fItemWeight = 1;
- fItemOwnerID = kNoActorID;
- fItemState = 0;
-
- gAllItems.push_back(this);
-}
-
-CItem::~CItem() {
-}
-
-Common::Error CItem::WriteToStream(Common::WriteStream *stream) {
- stream->writeUint16BE(fItemNeighborhood);
- stream->writeUint16BE(fItemRoom);
- stream->writeByte(fItemDirection);
- stream->writeUint16BE(fItemOwnerID);
- stream->writeUint16BE(fItemState);
-
- if (stream->err())
- return Common::kWritingFailed;
-
- return Common::kNoError;
-}
-
-Common::Error CItem::ReadFromStream(Common::ReadStream *stream) {
- fItemNeighborhood = stream->readUint16BE();
- fItemRoom = stream->readUint16BE();
- fItemDirection = stream->readByte();
- fItemOwnerID = stream->readUint16BE();
- fItemState = stream->readUint16BE();
-
- if (stream->err())
- return Common::kReadingFailed;
-
- return Common::kNoError;
-}
-
-tActorID CItem::GetItemOwner() const {
- return fItemOwnerID;
-}
-
-void CItem::SetItemOwner(const tActorID owner) {
- fItemOwnerID = owner;
-}
-
-tWeightType CItem::GetItemWeight() {
- return fItemWeight;
-}
-
-tItemState CItem::GetItemState() const {
- return fItemState;
-}
-
-void CItem::SetItemState(const tItemState state) {
- fItemState = state;
-}
-
-void CItem::GetItemRoom(tNeighborhoodID &neighborhood, tRoomID &room, tDirectionConstant &direction) const {
- neighborhood = fItemNeighborhood;
- room = fItemRoom;
- direction = fItemDirection;
-}
-
-void CItem::SetItemRoom(const tNeighborhoodID neighborhood, const tRoomID room, const tDirectionConstant direction) {
- fItemNeighborhood = neighborhood;
- fItemRoom = room;
- fItemDirection = direction;
-}
-
-tNeighborhoodID CItem::GetItemNeighborhood() const {
- return fItemNeighborhood;
-}
-
-} // End of namespace Pegasus
diff --git a/engines/pegasus/MMShell/Utilities/MMIDObject.h b/engines/pegasus/MMShell/Utilities/MMIDObject.h
index b45c7544b3..112d3b8275 100755
--- a/engines/pegasus/MMShell/Utilities/MMIDObject.h
+++ b/engines/pegasus/MMShell/Utilities/MMIDObject.h
@@ -38,29 +38,29 @@ public:
MMIDObject(const tMM32BitID id);
~MMIDObject();
- tMM32BitID GetObjectID() const;
+ tMM32BitID getObjectID() const;
private:
- tMM32BitID fObjectID;
+ tMM32BitID _objectID;
};
inline MMIDObject::MMIDObject(const tMM32BitID id) {
- fObjectID = id;
+ _objectID = id;
}
inline MMIDObject::~MMIDObject() {
}
-inline tMM32BitID MMIDObject::GetObjectID() const {
- return fObjectID;
+inline tMM32BitID MMIDObject::getObjectID() const {
+ return _objectID;
}
inline int operator==(const MMIDObject &arg1, const MMIDObject &arg2) {
- return arg1.fObjectID == arg2.fObjectID;
+ return arg1._objectID == arg2._objectID;
}
inline int operator!=(const MMIDObject &arg1, const MMIDObject &arg2) {
- return arg1.fObjectID != arg2.fObjectID;
+ return arg1._objectID != arg2._objectID;
}
} // End of namespace Pegasus
diff --git a/engines/pegasus/gamestate.cpp b/engines/pegasus/gamestate.cpp
index 2f4aed6188..bc88c5ed22 100755
--- a/engines/pegasus/gamestate.cpp
+++ b/engines/pegasus/gamestate.cpp
@@ -1530,12 +1530,12 @@ bool GameStateManager::isTakenItemID(tItemID id) {
return _itemTakenFlags.getFlag(id);
}
-void GameStateManager::setTakenItem(CItem *item, bool value) {
- setTakenItemID(item->GetObjectID(), value);
+void GameStateManager::setTakenItem(Item *item, bool value) {
+ setTakenItemID(item->getObjectID(), value);
}
-bool GameStateManager::isTakenItem(CItem *item) {
- return isTakenItemID(item->GetObjectID());
+bool GameStateManager::isTakenItem(Item *item) {
+ return isTakenItemID(item->getObjectID());
}
void GameStateManager::setCaldoriaFuseTimeLimit(const TimeValue timeLimit) {
diff --git a/engines/pegasus/gamestate.h b/engines/pegasus/gamestate.h
index af790ce283..4118b5d519 100755
--- a/engines/pegasus/gamestate.h
+++ b/engines/pegasus/gamestate.h
@@ -29,7 +29,7 @@
#include "common/singleton.h"
#include "pegasus/types.h"
-#include "pegasus/Game_Shell/CItem.h"
+#include "pegasus/items/item.h"
namespace Common {
class Error;
@@ -615,8 +615,8 @@ public:
bool allTimeZonesFinished();
void setTakenItemID(tItemID, bool);
bool isTakenItemID(tItemID);
- void setTakenItem(CItem*, bool);
- bool isTakenItem(CItem*);
+ void setTakenItem(Item*, bool);
+ bool isTakenItem(Item*);
// Caldoria
void setCaldoriaFuseTimeLimit(const TimeValue);
diff --git a/engines/pegasus/items/inventory.cpp b/engines/pegasus/items/inventory.cpp
new file mode 100755
index 0000000000..8f7eb46fd4
--- /dev/null
+++ b/engines/pegasus/items/inventory.cpp
@@ -0,0 +1,175 @@
+/* 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.
+ *
+ */
+
+#include "pegasus/constants.h"
+#include "pegasus/items/item.h"
+#include "pegasus/items/inventory.h"
+
+namespace Pegasus {
+
+Inventory::Inventory() {
+ _weightLimit = 100;
+ _ownerID = kNoActorID;
+ _referenceCount = 0;
+}
+
+Inventory::~Inventory() {
+}
+
+void Inventory::setWeightLimit(tWeightType limit) {
+ _weightLimit = limit;
+ // *** What to do if the new weight limit is greater than the current weight?
+}
+
+tWeightType Inventory::getWeight() {
+ tWeightType result = 0;
+
+ for (ItemIterator it = _inventoryList.begin(); it != _inventoryList.end(); it++)
+ result += (*it)->getItemWeight();
+
+ return result;
+}
+
+// If the item already belongs, just return kInventoryOK.
+tInventoryResult Inventory::addItem(Item *item) {
+ if (itemInInventory(item))
+ return kInventoryOK;
+
+ if (getWeight() + item->getItemWeight() > _weightLimit)
+ return kTooMuchWeight;
+
+ _inventoryList.push_back(item);
+ item->setItemOwner(_ownerID);
+
+ ++_referenceCount;
+ return kInventoryOK;
+}
+
+tInventoryResult Inventory::removeItem(Item *item) {
+ for (ItemIterator it = _inventoryList.begin(); it != _inventoryList.end(); it++) {
+ if (*it == item) {
+ _inventoryList.erase(it);
+ item->setItemOwner(kNoActorID);
+
+ ++_referenceCount;
+ return kInventoryOK;
+ }
+ }
+
+ return kItemNotInInventory;
+}
+
+tInventoryResult Inventory::removeItem(tItemID id) {
+ Item *item = findItemByID(id);
+
+ if (item) {
+ _inventoryList.remove(item);
+ item->setItemOwner(kNoActorID);
+
+ ++_referenceCount;
+ return kInventoryOK;
+ }
+
+ return kItemNotInInventory;
+}
+
+void Inventory::removeAllItems() {
+ _inventoryList.clear();
+ ++_referenceCount;
+}
+
+bool Inventory::itemInInventory(Item *item) {
+ for (ItemIterator it = _inventoryList.begin(); it != _inventoryList.end(); it++)
+ if (*it == item)
+ return true;
+
+ return false;
+}
+
+bool Inventory::itemInInventory(tItemID id) {
+ return findItemByID(id) != NULL;
+}
+
+Item *Inventory::getItemAt(int32 index) {
+ int32 i = 0;
+ for (ItemIterator it = _inventoryList.begin(); it != _inventoryList.end(); it++, i++)
+ if (i == index)
+ return *it;
+
+ return 0;
+}
+
+tItemID Inventory::getItemIDAt(int32 index) {
+ Item *item = getItemAt(index);
+
+ if (item)
+ return item->getObjectID();
+
+ return kNoItemID;
+}
+
+Item *Inventory::findItemByID(tItemID id) {
+ return _inventoryList.findItemByID(id);
+}
+
+// Return -1 if not found.
+
+int32 Inventory::findIndexOf(Item *item) {
+ uint32 i = 0;
+ for (ItemIterator it = _inventoryList.begin(); it != _inventoryList.end(); it++, i++)
+ if (*it == item)
+ return i;
+
+ return -1;
+}
+
+// Return -1 if not found.
+
+int32 Inventory::findIndexOf(tItemID id) {
+ uint32 i = 0;
+ for (ItemIterator it = _inventoryList.begin(); it != _inventoryList.end(); it++, i++)
+ if ((*it)->getObjectID() == id)
+ return i;
+
+ return -1;
+}
+
+tWeightType Inventory::getWeightLimit() {
+ return _weightLimit;
+}
+
+int32 Inventory::getNumItems() {
+ return _inventoryList.size();
+}
+
+void Inventory::setOwnerID(const tActorID id) {
+ _ownerID = id;
+}
+
+tActorID Inventory::getOwnerID() const {
+ return _ownerID;
+}
+
+} // End of namespae Pegasus
diff --git a/engines/pegasus/Game_Shell/CInventory.h b/engines/pegasus/items/inventory.h
index 45af5c379c..7da782f00e 100755
--- a/engines/pegasus/Game_Shell/CInventory.h
+++ b/engines/pegasus/items/inventory.h
@@ -23,15 +23,15 @@
*
*/
-#ifndef PEGASUS_GAMESHELL_CINVENTORY_H
-#define PEGASUS_GAMESHELL_CINVENTORY_H
+#ifndef PEGASUS_ITEMS_INVENTORY_H
+#define PEGASUS_ITEMS_INVENTORY_H
#include "pegasus/types.h"
-#include "pegasus/Game_Shell/CItemList.h"
+#include "pegasus/items/itemlist.h"
namespace Pegasus {
-class CItem;
+class Item;
// Inventories have a "current item". This item is the default item the player can
// use. In a text adventure system, the current item would be "it", as in
@@ -39,40 +39,40 @@ class CItem;
// item. In a graphic adventure, the current item would be the item the user selects
// to use with the mouse or other pointing device.
-class CInventory {
+class Inventory {
public:
- CInventory();
- virtual ~CInventory();
+ Inventory();
+ virtual ~Inventory();
- tWeightType GetWeightLimit();
- void SetWeightLimit(tWeightType limit);
- tWeightType GetWeight();
+ tWeightType getWeightLimit();
+ void setWeightLimit(tWeightType limit);
+ tWeightType getWeight();
- virtual tInventoryResult AddItem(CItem *item);
- virtual tInventoryResult RemoveItem(CItem *item);
- virtual tInventoryResult RemoveItem(tItemID id);
- virtual bool ItemInInventory(CItem *item);
- virtual bool ItemInInventory(tItemID id);
- virtual CItem *GetItemAt(int32 index);
- virtual tItemID GetItemIDAt(int32 index);
- virtual CItem *FindItemByID(tItemID id);
- virtual int32 FindIndexOf(CItem *item);
- virtual int32 FindIndexOf(tItemID id);
- int32 GetNumItems();
- virtual void RemoveAllItems();
+ virtual tInventoryResult addItem(Item *item);
+ virtual tInventoryResult removeItem(Item *item);
+ virtual tInventoryResult removeItem(tItemID id);
+ virtual bool itemInInventory(Item *item);
+ virtual bool itemInInventory(tItemID id);
+ virtual Item *getItemAt(int32 index);
+ virtual tItemID getItemIDAt(int32 index);
+ virtual Item *findItemByID(tItemID id);
+ virtual int32 findIndexOf(Item *item);
+ virtual int32 findIndexOf(tItemID id);
+ int32 getNumItems();
+ virtual void removeAllItems();
- void SetOwnerID(const tActorID id);
- tActorID GetOwnerID() const;
+ void setOwnerID(const tActorID id);
+ tActorID getOwnerID() const;
- uint32 GetReferenceCount() { return fReferenceCount; }
+ uint32 getReferenceCount() { return _referenceCount; }
protected:
- tWeightType fWeightLimit;
- tActorID fOwnerID;
- CItemList fInventoryList;
+ tWeightType _weightLimit;
+ tActorID _ownerID;
+ ItemList _inventoryList;
private:
- uint32 fReferenceCount;
+ uint32 _referenceCount;
};
} // End of namespace Pegasus
diff --git a/engines/pegasus/items/item.cpp b/engines/pegasus/items/item.cpp
new file mode 100755
index 0000000000..934dce6f2d
--- /dev/null
+++ b/engines/pegasus/items/item.cpp
@@ -0,0 +1,111 @@
+/* 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.
+ *
+ */
+
+#include "common/error.h"
+#include "common/stream.h"
+
+#include "pegasus/constants.h"
+#include "pegasus/items/item.h"
+#include "pegasus/items/itemlist.h"
+
+namespace Pegasus {
+
+Item::Item(const tItemID id, const tNeighborhoodID neighborhood, const tRoomID room, const tDirectionConstant direction) : MMIDObject(id) {
+ _itemNeighborhood = neighborhood;
+ _itemRoom = room;
+ _itemDirection = direction;
+ _itemWeight = 1;
+ _itemOwnerID = kNoActorID;
+ _itemState = 0;
+
+ g_allItems.push_back(this);
+}
+
+Item::~Item() {
+}
+
+Common::Error Item::writeToStream(Common::WriteStream *stream) {
+ stream->writeUint16BE(_itemNeighborhood);
+ stream->writeUint16BE(_itemRoom);
+ stream->writeByte(_itemDirection);
+ stream->writeUint16BE(_itemOwnerID);
+ stream->writeUint16BE(_itemState);
+
+ if (stream->err())
+ return Common::kWritingFailed;
+
+ return Common::kNoError;
+}
+
+Common::Error Item::readFromStream(Common::ReadStream *stream) {
+ _itemNeighborhood = stream->readUint16BE();
+ _itemRoom = stream->readUint16BE();
+ _itemDirection = stream->readByte();
+ _itemOwnerID = stream->readUint16BE();
+ _itemState = stream->readUint16BE();
+
+ if (stream->err())
+ return Common::kReadingFailed;
+
+ return Common::kNoError;
+}
+
+tActorID Item::getItemOwner() const {
+ return _itemOwnerID;
+}
+
+void Item::setItemOwner(const tActorID owner) {
+ _itemOwnerID = owner;
+}
+
+tWeightType Item::getItemWeight() {
+ return _itemWeight;
+}
+
+tItemState Item::getItemState() const {
+ return _itemState;
+}
+
+void Item::setItemState(const tItemState state) {
+ _itemState = state;
+}
+
+void Item::getItemRoom(tNeighborhoodID &neighborhood, tRoomID &room, tDirectionConstant &direction) const {
+ neighborhood = _itemNeighborhood;
+ room = _itemRoom;
+ direction = _itemDirection;
+}
+
+void Item::setItemRoom(const tNeighborhoodID neighborhood, const tRoomID room, const tDirectionConstant direction) {
+ _itemNeighborhood = neighborhood;
+ _itemRoom = room;
+ _itemDirection = direction;
+}
+
+tNeighborhoodID Item::getItemNeighborhood() const {
+ return _itemNeighborhood;
+}
+
+} // End of namespace Pegasus
diff --git a/engines/pegasus/Game_Shell/CItem.h b/engines/pegasus/items/item.h
index c923e1c69c..37ad54e5e7 100755
--- a/engines/pegasus/Game_Shell/CItem.h
+++ b/engines/pegasus/items/item.h
@@ -23,8 +23,8 @@
*
*/
-#ifndef PEGASUS_GAMESHELL_CITEM_H
-#define PEGASUS_GAMESHELL_CITEM_H
+#ifndef PEGASUS_ITEMS_ITEM_H
+#define PEGASUS_ITEMS_ITEM_H
#include "pegasus/MMShell/Utilities/MMIDObject.h"
#include "pegasus/types.h"
@@ -39,12 +39,12 @@ namespace Pegasus {
/*
- CItem is an object which can be picked up and carried around.
- CItems have
+ Item is an object which can be picked up and carried around.
+ Items have
a location
an ID.
weight
- an owner (kNoActorID if no one is carrying the CItem)
+ an owner (kNoActorID if no one is carrying the Item)
*/
@@ -219,35 +219,35 @@ const uint32 kRemoveGlass = 10;
const uint32 kRemoveDart = 11;
const uint32 kRemoveSinclairKey = 12;
-class CItem : public MMIDObject {
+class Item : public MMIDObject {
public:
- CItem(const tItemID id, const tNeighborhoodID neighborhood, const tRoomID room, const tDirectionConstant direction);
- virtual ~CItem();
+ Item(const tItemID id, const tNeighborhoodID neighborhood, const tRoomID room, const tDirectionConstant direction);
+ virtual ~Item();
// WriteToStream writes everything EXCEPT the item's ID.
// It is assumed that the calling function will write and read the ID.
- virtual Common::Error WriteToStream(Common::WriteStream *stream);
- virtual Common::Error ReadFromStream(Common::ReadStream *stream);
+ virtual Common::Error writeToStream(Common::WriteStream *stream);
+ virtual Common::Error readFromStream(Common::ReadStream *stream);
- virtual tActorID GetItemOwner() const;
- virtual void SetItemOwner(const tActorID owner);
+ virtual tActorID getItemOwner() const;
+ virtual void setItemOwner(const tActorID owner);
- void GetItemRoom(tNeighborhoodID &neighborhood, tRoomID &room, tDirectionConstant &direction) const;
- void SetItemRoom(const tNeighborhoodID neighborhood, const tRoomID room, const tDirectionConstant direction);
- tNeighborhoodID GetItemNeighborhood() const;
+ void getItemRoom(tNeighborhoodID &neighborhood, tRoomID &room, tDirectionConstant &direction) const;
+ void setItemRoom(const tNeighborhoodID neighborhood, const tRoomID room, const tDirectionConstant direction);
+ tNeighborhoodID getItemNeighborhood() const;
- virtual tWeightType GetItemWeight();
+ virtual tWeightType getItemWeight();
- virtual void SetItemState(const tItemState state);
- virtual tItemState GetItemState() const;
+ virtual void setItemState(const tItemState state);
+ virtual tItemState getItemState() const;
protected:
- tNeighborhoodID fItemNeighborhood;
- tRoomID fItemRoom;
- tDirectionConstant fItemDirection;
- tActorID fItemOwnerID;
- tWeightType fItemWeight;
- tItemState fItemState;
+ tNeighborhoodID _itemNeighborhood;
+ tRoomID _itemRoom;
+ tDirectionConstant _itemDirection;
+ tActorID _itemOwnerID;
+ tWeightType _itemWeight;
+ tItemState _itemState;
};
} // End of namespace Pegasus
diff --git a/engines/pegasus/Game_Shell/CItemList.cpp b/engines/pegasus/items/itemlist.cpp
index 256a895797..2b980d6f5f 100755
--- a/engines/pegasus/Game_Shell/CItemList.cpp
+++ b/engines/pegasus/items/itemlist.cpp
@@ -26,26 +26,26 @@
#include "common/error.h"
#include "common/stream.h"
-#include "engines/pegasus/Game_Shell/CItem.h"
-#include "engines/pegasus/Game_Shell/CItemList.h"
+#include "engines/pegasus/items/item.h"
+#include "engines/pegasus/items/itemlist.h"
namespace Pegasus {
// TODO: Don't use global construction!
-CItemList gAllItems;
+ItemList g_allItems;
-CItemList::CItemList() {
+ItemList::ItemList() {
}
-CItemList::~CItemList() {
+ItemList::~ItemList() {
}
-Common::Error CItemList::WriteToStream(Common::WriteStream *stream) {
+Common::Error ItemList::writeToStream(Common::WriteStream *stream) {
stream->writeUint32BE(size());
- for (CItemIterator it = begin(); it != end(); it++) {
- stream->writeUint16BE((*it)->GetObjectID());
- (*it)->WriteToStream(stream);
+ for (ItemIterator it = begin(); it != end(); it++) {
+ stream->writeUint16BE((*it)->getObjectID());
+ (*it)->writeToStream(stream);
}
if (stream->err())
@@ -54,12 +54,12 @@ Common::Error CItemList::WriteToStream(Common::WriteStream *stream) {
return Common::kNoError;
}
-Common::Error CItemList::ReadFromStream(Common::ReadStream *stream) {
+Common::Error ItemList::readFromStream(Common::ReadStream *stream) {
uint32 itemCount = stream->readUint32BE();
for (uint32 i = 0; i < itemCount; i++) {
tItemID itemID = stream->readUint16BE();
- gAllItems.FindItemByID(itemID)->ReadFromStream(stream);
+ g_allItems.findItemByID(itemID)->readFromStream(stream);
}
if (stream->err())
@@ -68,9 +68,9 @@ Common::Error CItemList::ReadFromStream(Common::ReadStream *stream) {
return Common::kNoError;
}
-CItem *CItemList::FindItemByID(const tItemID id) {
- for (CItemIterator it = begin(); it != end(); it++)
- if ((*it)->GetObjectID() == id)
+Item *ItemList::findItemByID(const tItemID id) {
+ for (ItemIterator it = begin(); it != end(); it++)
+ if ((*it)->getObjectID() == id)
return *it;
return 0;
diff --git a/engines/pegasus/Game_Shell/CItemList.h b/engines/pegasus/items/itemlist.h
index d4c0d56272..dd9a4ba023 100755
--- a/engines/pegasus/Game_Shell/CItemList.h
+++ b/engines/pegasus/items/itemlist.h
@@ -23,8 +23,8 @@
*
*/
-#ifndef PEGASUS_GAMESHELL_CITEMLIST_H
-#define PEGASUS_GAMESHELL_CITEMLIST_H
+#ifndef PEGASUS_ITEMS_ITEMLIST_H
+#define PEGASUS_ITEMS_ITEMLIST_H
#include "common/list.h"
@@ -37,23 +37,23 @@ namespace Common {
namespace Pegasus {
-class CItem;
+class Item;
-class CItemList : public Common::List<CItem *> {
+class ItemList : public Common::List<Item *> {
public:
- CItemList();
- virtual ~CItemList();
+ ItemList();
+ virtual ~ItemList();
- virtual Common::Error WriteToStream(Common::WriteStream *stream);
- virtual Common::Error ReadFromStream(Common::ReadStream *stream);
+ virtual Common::Error writeToStream(Common::WriteStream *stream);
+ virtual Common::Error readFromStream(Common::ReadStream *stream);
- CItem *FindItemByID(const tItemID id);
+ Item *findItemByID(const tItemID id);
};
-typedef CItemList::iterator CItemIterator;
+typedef ItemList::iterator ItemIterator;
// TODO: Don't use global construction!
-extern CItemList gAllItems;
+extern ItemList g_allItems;
} // End of namespace Pegasus
diff --git a/engines/pegasus/menu.cpp b/engines/pegasus/menu.cpp
index 577d96aa82..49d60144d6 100644
--- a/engines/pegasus/menu.cpp
+++ b/engines/pegasus/menu.cpp
@@ -25,8 +25,7 @@
#include "pegasus/console.h"
#include "pegasus/pegasus.h"
-
-#include "pegasus/MMShell/Sounds/MMSound.h"
+#include "pegasus/sound.h"
namespace Pegasus {
@@ -46,9 +45,9 @@ enum {
};
void PegasusEngine::runMainMenu() {
- MMSound sound;
- sound.InitFromAIFFFile("Sounds/Main Menu.aiff");
- sound.LoopSound();
+ Sound sound;
+ sound.initFromAIFFFile("Sounds/Main Menu.aiff");
+ sound.loopSound();
// Note down how long since the last click
uint32 lastClickTime = _system->getMillis();
@@ -86,14 +85,14 @@ void PegasusEngine::runMainMenu() {
case Common::KEYCODE_RETURN:
if (buttonSelected != kDifficultyButton) {
drawMenuButtonSelected(buttonSelected);
- sound.StopSound();
+ sound.stopSound();
setGameMode(buttonSelected);
if (_gameMode != kMainMenuMode)
return;
drawMenu(buttonSelected);
- sound.LoopSound();
+ sound.loopSound();
}
break;
case Common::KEYCODE_d:
@@ -122,7 +121,7 @@ void PegasusEngine::runMainMenu() {
return;
// Too slow! Go back and show the intro again.
- sound.StopSound();
+ sound.stopSound();
_video->playMovie(_introDirectory + "/LilMovie.movie");
_gameMode = kIntroMode;
}
diff --git a/engines/pegasus/module.mk b/engines/pegasus/module.mk
index 4840190a00..4f44050787 100644
--- a/engines/pegasus/module.mk
+++ b/engines/pegasus/module.mk
@@ -9,15 +9,15 @@ MODULE_OBJS = \
menu.o \
overview.o \
pegasus.o \
+ sound.o \
video.o \
- Game_Shell/CInventory.o \
- Game_Shell/CItem.o \
- Game_Shell/CItemList.o \
+ items/inventory.o \
+ items/item.o \
+ items/itemlist.o \
MMShell/Base_Classes/MMFunctionPtr.o \
MMShell/Notification/MMNotification.o \
MMShell/Notification/MMNotificationManager.o \
MMShell/Notification/MMNotificationReceiver.o \
- MMShell/Sounds/MMSound.o \
MMShell/Utilities/MMResourceFile.o \
MMShell/Utilities/MMTimeValue.o \
MMShell/Utilities/MMUtilities.o \
diff --git a/engines/pegasus/MMShell/Sounds/MMSound.cpp b/engines/pegasus/sound.cpp
index 23ac60bced..5fcac1134a 100755
--- a/engines/pegasus/MMShell/Sounds/MMSound.cpp
+++ b/engines/pegasus/sound.cpp
@@ -28,25 +28,25 @@
#include "common/file.h"
#include "common/system.h"
-#include "engines/pegasus/MMShell/Sounds/MMSound.h"
+#include "pegasus/sound.h"
namespace Pegasus {
-MMSound::MMSound() {
+Sound::Sound() {
_aiffStream = 0;
_volume = 0xFF;
}
-MMSound::~MMSound() {
- DisposeSound();
+Sound::~Sound() {
+ disposeSound();
}
-void MMSound::DisposeSound() {
- StopSound();
+void Sound::disposeSound() {
+ stopSound();
delete _aiffStream; _aiffStream = 0;
}
-void MMSound::InitFromAIFFFile(const Common::String &fileName) {
+void Sound::initFromAIFFFile(const Common::String &fileName) {
Common::File *file = new Common::File();
if (!file->open(fileName)) {
delete file;
@@ -58,37 +58,37 @@ void MMSound::InitFromAIFFFile(const Common::String &fileName) {
#if 0
// TODO!
-void MMSound::AttachFader(MMSoundFader *theFader) {
- if (fTheFader)
- fTheFader->AttachSound(NULL);
+void Sound::attachFader(SoundFader *fader) {
+ if (_fader)
+ _fader->attachSound(NULL);
- fTheFader = theFader;
+ _fader = fader;
- if (fTheFader)
- fTheFader->AttachSound(this);
+ if (_fader)
+ _fader->attachSound(this);
}
#endif
-void MMSound::PlaySound() {
- if (!SoundLoaded())
+void Sound::playSound() {
+ if (!isSoundLoaded())
return;
- StopSound();
+ stopSound();
#if 0
// TODO!
- if (fTheFader)
- this->SetVolume(fTheFader->GetFaderValue());
+ if (_fader)
+ setVolume(_fader->getFaderValue());
#endif
g_system->getMixer()->playStream(Audio::Mixer::kPlainSoundType, &_handle, _aiffStream, -1, _volume, 0, DisposeAfterUse::NO);
}
-void MMSound::LoopSound() {
- if (!SoundLoaded())
+void Sound::loopSound() {
+ if (!isSoundLoaded())
return;
- StopSound();
+ stopSound();
// Create a looping stream
Audio::AudioStream *loopStream = new Audio::LoopingAudioStream(_aiffStream, 0, DisposeAfterUse::NO);
@@ -96,18 +96,18 @@ void MMSound::LoopSound() {
#if 0
// TODO!
// Assume that if there is a fader, we're going to fade the sound in.
- if (fTheFader)
- this->SetVolume(0);
+ if (_fader)
+ setVolume(0);
#endif
g_system->getMixer()->playStream(Audio::Mixer::kPlainSoundType, &_handle, loopStream, -1, _volume, 0, DisposeAfterUse::YES);
}
-void MMSound::StopSound(void) {
+void Sound::stopSound(void) {
g_system->getMixer()->stopHandle(_handle);
}
-void MMSound::SetVolume(const uint16 volume) {
+void Sound::setVolume(const uint16 volume) {
// Clipping the volume to [0x00, 0xFF] instead of Apple's [0, 0x100]
// We store the volume in case SetVolume is called before the sound starts
@@ -115,11 +115,11 @@ void MMSound::SetVolume(const uint16 volume) {
g_system->getMixer()->setChannelVolume(_handle, _volume);
}
-bool MMSound::IsPlaying() {
- return SoundLoaded() && g_system->getMixer()->isSoundHandleActive(_handle);
+bool Sound::isPlaying() {
+ return isSoundLoaded() && g_system->getMixer()->isSoundHandleActive(_handle);
}
-bool MMSound::SoundLoaded() const {
+bool Sound::isSoundLoaded() const {
return _aiffStream != 0;
}
diff --git a/engines/pegasus/MMShell/Sounds/MMSound.h b/engines/pegasus/sound.h
index bb5578266d..62ce51a605 100755
--- a/engines/pegasus/MMShell/Sounds/MMSound.h
+++ b/engines/pegasus/sound.h
@@ -23,8 +23,8 @@
*
*/
-#ifndef PEGASUS_MMSHELL_SOUNDS_MMSOUND_H
-#define PEGASUS_MMSHELL_SOUNDS_MMSOUND_H
+#ifndef PEGASUS_SOUND_H
+#define PEGASUS_SOUND_H
#include "audio/mixer.h"
#include "common/str.h"
@@ -49,26 +49,26 @@ namespace Pegasus {
// Pan the sound
// Change these settings dynamically over time
-class MMSound {
+class Sound {
public:
- MMSound();
- ~MMSound();
+ Sound();
+ ~Sound();
// We only have one access point here because we should
// only be opening an AIFF file from a file name. We're
// not using the resource fork string resources.
- void InitFromAIFFFile(const Common::String &fileName);
+ void initFromAIFFFile(const Common::String &fileName);
- void DisposeSound();
- bool SoundLoaded() const;
- void PlaySound();
- void LoopSound();
- void StopSound();
- void SetVolume(const uint16 volume);
- bool IsPlaying();
+ void disposeSound();
+ bool isSoundLoaded() const;
+ void playSound();
+ void loopSound();
+ void stopSound();
+ void setVolume(const uint16 volume);
+ bool isPlaying();
// TODO!
- //void AttachFader(MMSoundFader*);
+ //void attachFader(SoundFader *fader);
protected:
Audio::RewindableAudioStream *_aiffStream;
@@ -76,7 +76,7 @@ protected:
byte _volume;
// TODO!
- //MMSoundFader *fTheFader;
+ //SoundFader *_fader;
};
} // End of namespace Pegasus