diff options
author | David Corrales | 2007-05-26 20:23:24 +0000 |
---|---|---|
committer | David Corrales | 2007-05-26 20:23:24 +0000 |
commit | 3646c968c9578c2a94d65ebd5fb06ec835f8c51d (patch) | |
tree | 8b57b339ebb31a1d7a67f1678aa5dc5c7759070a /engines/cruise/stack.cpp | |
parent | d1f56d93f934150f4b579c2e90564e2bf035f113 (diff) | |
parent | ac45c5b33d834acbc9718f89be76e49d403a4d2c (diff) | |
download | scummvm-rg350-3646c968c9578c2a94d65ebd5fb06ec835f8c51d.tar.gz scummvm-rg350-3646c968c9578c2a94d65ebd5fb06ec835f8c51d.tar.bz2 scummvm-rg350-3646c968c9578c2a94d65ebd5fb06ec835f8c51d.zip |
Merged the fs branch with trunk. r26472:26948
svn-id: r26949
Diffstat (limited to 'engines/cruise/stack.cpp')
-rw-r--r-- | engines/cruise/stack.cpp | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/engines/cruise/stack.cpp b/engines/cruise/stack.cpp new file mode 100644 index 0000000000..6cce7579ed --- /dev/null +++ b/engines/cruise/stack.cpp @@ -0,0 +1,76 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2006 The ScummVM project + * + * cinE Engine is (C) 2004-2005 by CinE Team + * + * 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$ + * + */ + +#include "cruise/cruise_main.h" + +namespace Cruise { + +// 4 type bigger than the old one, but much safer/cleaner +stackElementStruct scriptStack[SIZE_STACK]; + +// VAR + +void pushVar(int16 var) { + if (positionInStack < SIZE_STACK) { + scriptStack[positionInStack].data.shortVar = var; + scriptStack[positionInStack].type = STACK_SHORT; + positionInStack++; + } +} + +int16 popVar(void) { + if (positionInStack <= 0) { + return (0); + } + + positionInStack--; + + ASSERT(scriptStack[positionInStack].type == STACK_SHORT); + + return (scriptStack[positionInStack].data.shortVar); +} + +//// PTR + +void pushPtr(void *ptr) { + if (positionInStack < SIZE_STACK) { + scriptStack[positionInStack].data.ptrVar = ptr; + scriptStack[positionInStack].type = STACK_PTR; + positionInStack++; + } +} + +void *popPtr() { + if (positionInStack <= 0) { + return (0); + } + + positionInStack--; + + ASSERT(scriptStack[positionInStack].type == STACK_PTR); + + return (scriptStack[positionInStack].data.ptrVar); +} + +} // End of namespace Cruise |