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 /sword1/router.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 'sword1/router.h')
-rw-r--r-- | sword1/router.h | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/sword1/router.h b/sword1/router.h deleted file mode 100644 index e7c835f6d2..0000000000 --- a/sword1/router.h +++ /dev/null @@ -1,180 +0,0 @@ -/* ScummVM - Scumm Interpreter - * Copyright (C) Revolution Software Ltd. - * - * 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 BSROUTER_H -#define BSROUTER_H - -#include "common/scummsys.h" -#include "sword1/object.h" - -namespace Sword1 { - -#define EXTRA_GRID_SIZE 20 -#define O_GRID_SIZE 200 - -#if !defined(__GNUC__) - #pragma START_PACK_STRUCTS -#endif - -struct BarData { - int16 x1; - int16 y1; - int16 x2; - int16 y2; - int16 xmin; - int16 ymin; - int16 xmax; - int16 ymax; - int16 dx; // x2 - x1 - int16 dy; // y2 - y1 - int32 co; // co = (y1 *dx)- (x1*dy) from an equation for a line y*dx = x*dy + co -} GCC_PACK; - -struct NodeData { - int16 x; - int16 y; - int16 level; - int16 prev; - int16 dist; -} GCC_PACK; - -#if !defined(__GNUC__) - #pragma END_PACK_STRUCTS -#endif - -struct FloorData { - int32 nbars; - BarData *bars; - int32 nnodes; - NodeData *node; -}; - -struct RouteData { - int32 x; - int32 y; - int32 dirS; - int32 dirD; -}; - -struct PathData { - int32 x; - int32 y; - int32 dir; - int32 num; -}; - -#define ROUTE_END_FLAG 255 -#define NO_DIRECTIONS 8 -#define MAX_FRAMES_PER_CYCLE 16 -#define MAX_FRAMES_PER_CHAR (MAX_FRAMES_PER_CYCLE * NO_DIRECTIONS) -#define O_ROUTE_SIZE 50 - -class ObjectMan; -class ResMan; -class Screen; - -extern int whatTarget(int32 startX, int32 startY, int32 destX, int32 destY); - -class Router { -public: - Router(ObjectMan *pObjMan, ResMan *pResMan); - int32 routeFinder(int32 id, Object *mega, int32 x, int32 y, int32 dir); - void setPlayerTarget(int32 x, int32 y, int32 dir, int32 stance); - void resetExtraData(void); - - // these should be private but are read by Screen for debugging: - BarData bars[O_GRID_SIZE+EXTRA_GRID_SIZE]; - NodeData node[O_GRID_SIZE+EXTRA_GRID_SIZE]; - int32 nbars, nnodes; -private: - // when the player collides with another mega, we'll receive a ReRouteRequest here. - // that's why we need to remember the player's target coordinates - int32 _playerTargetX, _playerTargetY, _playerTargetDir, _playerTargetStance; - // additional route data to block parts of the floor and enable routine around megas: - int32 _numExtraBars, _numExtraNodes; - BarData _extraBars[EXTRA_GRID_SIZE]; - NodeData _extraNodes[EXTRA_GRID_SIZE]; - ObjectMan *_objMan; - ResMan *_resMan; - - /*uint8 _nWalkFrames, _nTurnFrames; - int32 _dx[NO_DIRECTIONS + MAX_FRAMES_PER_CHAR]; - int32 _dy[NO_DIRECTIONS + MAX_FRAMES_PER_CHAR]; - int32 _modX[NO_DIRECTIONS]; - int32 _modY[NO_DIRECTIONS]; - int32 _diagonalx, _diagonaly;*/ - - int32 startX, startY, startDir; - int32 targetX, targetY, targetDir; - int32 scaleA, scaleB; - int32 megaId; - - /*RouteData _route[O_ROUTE_SIZE]; - //int32 _routeLength; - PathData _smoothPath[O_ROUTE_SIZE]; - PathData _modularPath[O_ROUTE_SIZE];*/ - RouteData route[O_ROUTE_SIZE]; - PathData smoothPath[O_ROUTE_SIZE]; - PathData modularPath[O_ROUTE_SIZE]; - int32 routeLength; - - int32 framesPerStep, framesPerChar; - uint8 nWalkFrames, nTurnFrames; - int32 _dx[NO_DIRECTIONS + MAX_FRAMES_PER_CHAR]; - int32 _dy[NO_DIRECTIONS + MAX_FRAMES_PER_CHAR]; - int32 modX[NO_DIRECTIONS]; - int32 modY[NO_DIRECTIONS]; - int32 diagonalx, diagonaly; - int32 standFrames; - int32 turnFramesLeft, turnFramesRight; - int32 walkFramesLeft, walkFramesRight; // left/right walking turn - int32 slowInFrames, slowOutFrames; - - - int32 LoadWalkResources(Object *mega, int32 x, int32 y, int32 targetDir); - int32 GetRoute(void); - int32 CheckTarget(int32 x, int32 y); - - int32 Scan(int32 level); - int32 NewCheck(int32 status, int32 x1, int32 x2, int32 y1, int32 y2); - int32 Check(int32 x1, int32 y1, int32 x2, int32 y2); - int32 HorizCheck(int32 x1, int32 y, int32 x2); - int32 VertCheck(int32 x, int32 y1, int32 y2); - int32 LineCheck(int32 x1, int32 y1, int32 x2, int32 y2); - - void ExtractRoute(); - - int32 SlidyPath(); - void SlidyWalkAnimator(WalkData *walkAnim); - - int32 SmoothestPath(); - int32 SmoothCheck(int32 best, int32 p, int32 dirS, int32 dirD); - - int32 SolidPath(); - int32 SolidWalkAnimator(WalkData *walkAnim); - void RouteLine(int32 x1,int32 y1,int32 x2,int32 y2 ,int32 colour); - void BresenhamLine(int32 x1,int32 y1,int32 x2,int32 y2, uint8 *screen, int32 width, int32 height, int32 colour); -}; - -} // End of namespace Sword1 - -#endif //BSROUTER_H |