aboutsummaryrefslogtreecommitdiff
path: root/engines/hopkins/lines.h
diff options
context:
space:
mode:
authorWillem Jan Palenstijn2013-02-16 10:55:07 +0100
committerWillem Jan Palenstijn2013-02-16 15:59:02 +0100
commitcccbd842041c3e6099dce790911d4c02da62874e (patch)
tree2bcd8e6f56e474a404576267ddead7f17c78edae /engines/hopkins/lines.h
parent84e290eade13bfdff1e866d058af447893bee321 (diff)
downloadscummvm-rg350-cccbd842041c3e6099dce790911d4c02da62874e.tar.gz
scummvm-rg350-cccbd842041c3e6099dce790911d4c02da62874e.tar.bz2
scummvm-rg350-cccbd842041c3e6099dce790911d4c02da62874e.zip
HOPKINS: Convert route lists into structs
Diffstat (limited to 'engines/hopkins/lines.h')
-rw-r--r--engines/hopkins/lines.h33
1 files changed, 22 insertions, 11 deletions
diff --git a/engines/hopkins/lines.h b/engines/hopkins/lines.h
index b9ae3e6e31..aecc56fbcd 100644
--- a/engines/hopkins/lines.h
+++ b/engines/hopkins/lines.h
@@ -83,6 +83,17 @@ struct ZonePItem {
int field12;
};
+struct RouteItem {
+ int16 _X;
+ int16 _Y;
+ int16 _dir;
+ int16 _unk;
+ bool isValid() const { return _X != -1 || _Y != -1; }
+ void invalidate() { _X = _Y = _dir = _unk = -1; }
+ void set(int16 X, int16 Y, int16 dir) { _X = X; _Y = Y; _dir = dir; _unk = 0; }
+};
+
+
class LinesManager {
private:
HopkinsEngine *_vm;
@@ -95,10 +106,10 @@ private:
int NVPX;
int NVPY;
int _smoothMoveDirection;
- int16 super_parcours[32002];
+ RouteItem super_parcours[8001];
byte *BUFFERTAPE;
- int16 *essai0;
- int16 *essai1;
+ RouteItem *essai0;
+ RouteItem *essai1;
int16 *BufLig;
LigneZoneItem _zoneLine[401];
LigneItem Ligne[400];
@@ -117,18 +128,18 @@ private:
bool makeSmoothMove(int fromX, int fromY, int destX, int destY);
int CALC_PROPRE(int idx);
- int CONTOURNE1(int a1, int a2, int a3, int a4, int a5, int16 *route, int a7, int a8, int a9);
- int CONTOURNE(int a1, int a2, int a3, int a4, int a5, int16 *route, int a7);
+ int CONTOURNE1(int a1, int a2, int a3, int a4, int a5, RouteItem *route, int a8, int a9);
+ int CONTOURNE(int a1, int a2, int a3, int a4, int a5, RouteItem *route);
bool MIRACLE(int a1, int a2, int a3, int a4, int a5);
- int GENIAL(int lineIdx, int dataIdx, int a3, int a4, int a5, int a6, int a7, int16 *route, int a9);
+ int GENIAL(int lineIdx, int dataIdx, int a3, int a4, int a5, int a6, int a7, RouteItem *route);
int PARC_PERS(int fromX, int fromY, int destX, int destY, int a5, int a6, int a7);
bool PLAN_TEST(int paramX, int paramY, int a3, int a4, int a5);
int TEST_LIGNE(int paramX, int paramY, int *a3, int *foundLineIdx, int *foundDataIdx);
int colision(int xp, int yp);
public:
- int16 *_route;
- int16 *essai2;
+ RouteItem *_route;
+ RouteItem *essai2;
int BOBZONE[105];
bool BOBZONE_FLAG[105];
@@ -145,7 +156,7 @@ public:
void loadLines(const Common::String &file);
void addLine(int idx, int direction, int a3, int a4, int a5, int a6);
void initRoute();
- int16 *cityMapCarRoute(int x1, int y1, int x2, int y2);
+ RouteItem *cityMapCarRoute(int x1, int y1, int x2, int y2);
void clearAllZones();
void resetLines();
void resetLinesNumb();
@@ -156,8 +167,8 @@ public:
int MZONE();
void CARRE_ZONE();
- int16 *PARCOURS2(int fromX, int fromY, int destX, int destY);
- void PACOURS_PROPRE(int16 *route);
+ RouteItem *PARCOURS2(int fromX, int fromY, int destX, int destY);
+ void PACOURS_PROPRE(RouteItem *route);
};
} // End of namespace Hopkins