diff options
author | Paul Gilbert | 2012-04-30 09:27:12 +1000 |
---|---|---|
committer | Paul Gilbert | 2012-04-30 09:27:12 +1000 |
commit | b0eef829728183b7ea170b30a33eca091bcc4574 (patch) | |
tree | 77ca85abb4c08a94dbadad68f0a79cf1cb7af60f /engines/tony/gfxengine.h | |
parent | 118f5ca0102144b5c282f012def6c96c69052bc1 (diff) | |
download | scummvm-rg350-b0eef829728183b7ea170b30a33eca091bcc4574.tar.gz scummvm-rg350-b0eef829728183b7ea170b30a33eca091bcc4574.tar.bz2 scummvm-rg350-b0eef829728183b7ea170b30a33eca091bcc4574.zip |
TONY: Added include files for graphics engine and all dependent classes
Diffstat (limited to 'engines/tony/gfxengine.h')
-rw-r--r-- | engines/tony/gfxengine.h | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/engines/tony/gfxengine.h b/engines/tony/gfxengine.h new file mode 100644 index 0000000000..317056315e --- /dev/null +++ b/engines/tony/gfxengine.h @@ -0,0 +1,167 @@ +/* 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. + * + */ +/************************************************************************** + * 様様様様様様様様様様様様様様様様様 * + * Nayma Software srl * + * e -= We create much MORE than ALL =- * + * u- z$$$c '. 様様様様様様様様様様様様様様様様様 * + * .d" d$$$$$b "b. * + * .z$* d$$$$$$$L ^*$c. * + * #$$$. $$$$$$$$$ .$$$" Project: Roasted Moths........ * + * ^*$b 4$$$$$$$$$F .d$*" * + * ^$$. 4$$$$$$$$$F .$P" Module: GfxEngine.CPP........ * + * *$. '$$$$$$$$$ 4$P 4 * + * J *$ "$$$$$$$" $P r Author: Giovanni Bajo........ * + * z$ '$$$P*4c.*$$$*.z@*R$$$ $. * + * z$" "" #$F^ "" '$c * + * z$$beu .ue=" $ "=e.. .zed$$c * + * "#$e z$*" . `. ^*Nc e$"" * + * "$$". .r" ^4. .^$$" * + * ^.@*"6L=\ebu^+C$"*b." * + * "**$. "c 4$$$ J" J$P*" OS: [ ] DOS [X] WIN95 [ ] PORT * + * ^"--.^ 9$" .--"" COMP: [ ] WATCOM [X] VISUAL C++ * + * " [ ] EIFFEL [ ] GCC/GXX/DJGPP * + * * + * This source code is Copyright (C) Nayma Software. ALL RIGHTS RESERVED * + * * + **************************************************************************/ + +#ifndef TONY_GFXENGINE_H +#define TONY_GFXENGINE_H + +#include "common/scummsys.h" +#include "common/system.h" +#include "common/rect.h" +#include "tony/mpal/memory.h" +#include "tony/game.h" +#include "tony/gfxcore.h" +#include "tony/input.h" +#include "tony/inventory.h" +#include "tony/tonychar.h" +#include "tony/utils.h" + +namespace Tony { + +class RMGfxEngine { +private: + RMGfxTargetBuffer m_bigBuf; + RMInput m_input; + RMPointer m_point; + RMLocation m_loc; + RMOptionScreen m_opt; + RMTony m_tony; + RMInventory m_inv; + RMInterface m_inter; + RMTextItemName m_itemName; + + bool m_bOption; + bool m_bLocationLoaded; + + bool m_bInput; + bool m_bAlwaysDrawMouse; + + int m_nCurLoc; + RMTonyAction m_curAction; + int m_curActionObj; + OSystem::MutexRef csMainLoop; + + int m_nWipeType; + HANDLE m_hWipeEvent; + int m_nWipeStep; + + bool m_bMustEnterMenu; +protected: + static void ItemIrq(uint32 dwItem, int nPattern, int nStatus); + void InitForNewLocation(int nLoc, RMPoint ptTonyStart, RMPoint start); +public: + bool m_bWiping; + Common::Rect m_rcWipeEllipse; + bool m_bGUIOption; + bool m_bGUIInterface; + bool m_bGUIInventory; +public: + RMGfxEngine(); + virtual ~RMGfxEngine(); + + // Draw the next frame + void DoFrame(bool bDrawLocation); + + // Initialises the graphics engine + void Init(); + + // Closes the graphics engine + void Close(void); + + // Warns when changing + void SwitchFullscreen(bool bFull); + + // Warn that we are guided by the GDI + void GDIControl(bool bCon); + + // Warns when entering or exits the options menu + void OpenOptionScreen(int type); + + // Enables or disables mouse input + void EnableInput(void); + void DisableInput(void); + + // Enables and disables mouse draw + void EnableMouse(void); + void DisableMouse(void); + + operator byte *() { return (byte *)m_bigBuf; } + + // Link to the custom function list + void InitCustomDll(void); + + // Link to graphic task + void LinkGraphicTask(RMGfxTask *task) { m_bigBuf.AddPrim(new RMGfxPrimitive(task)); }; + + // Manage a location + HANDLE LoadLocation(int nLoc, RMPoint ptTonyStart, RMPoint start); + HANDLE UnloadLocation(bool bDoOnExit=true); + + // Freeze and unfreeze + void Freeze(void); + void Unfreeze(void); + + // State management + void SaveState(char *fn, byte *curThumb, char *name, bool bFastCompress = false); + void LoadState(char *fn); + + // Selects a location + void SelectLocation(RMPoint ptTonyStart=RMPoint(-1,-1), RMPoint start=RMPoint(-1,-1)); + + // Pauses sound + void PauseSound(bool bPause); + + // Wipe + void InitWipe(int type); + void CloseWipe(void); + void WaitWipeEnd(void); + + void SetPalesati(bool bpal) { m_inter.SetPalesati(bpal); } +}; + +} // End of namespace Tony + +#endif |