aboutsummaryrefslogtreecommitdiff
path: root/engines/startrek/startrek.h
diff options
context:
space:
mode:
authorMatthew Stewart2018-07-23 05:36:32 -0400
committerEugene Sandulenko2018-08-09 08:37:30 +0200
commiteff87179da0554446837a732bb6855f6c7f8a890 (patch)
tree87ace1e7847dcf6d589f60a33fb5acfcdc1d91e7 /engines/startrek/startrek.h
parent565bf0e96750588e8a7f6816e79683e97896f8de (diff)
downloadscummvm-rg350-eff87179da0554446837a732bb6855f6c7f8a890.tar.gz
scummvm-rg350-eff87179da0554446837a732bb6855f6c7f8a890.tar.bz2
scummvm-rg350-eff87179da0554446837a732bb6855f6c7f8a890.zip
STARTREK: Half-done implementation of drawR3Shape
Handles drawing, scaling, probably rotating objects in space.
Diffstat (limited to 'engines/startrek/startrek.h')
-rw-r--r--engines/startrek/startrek.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/engines/startrek/startrek.h b/engines/startrek/startrek.h
index 4f5e62dbd4..f95897da7b 100644
--- a/engines/startrek/startrek.h
+++ b/engines/startrek/startrek.h
@@ -112,7 +112,8 @@ enum StarTrekGameFeatures {
enum kDebugLevels {
kDebugSound = 1 << 0,
kDebugGraphics = 1 << 1,
- kDebugSavegame = 2 << 1
+ kDebugSavegame = 1 << 2,
+ kDebugSpace = 2 << 3
};
enum GameMode {
@@ -215,9 +216,9 @@ public:
/**
* Unit of the angle is "quadrants" (90 degrees = 1.0)
*/
- Fixed14 sin(Fixed8 angle);
- Fixed14 cos(Fixed8 angle);
- Fixed8 atan2(int32 deltaX, int32 deltaZ);
+ Fixed14 sin(Angle angle);
+ Fixed14 cos(Angle angle);
+ Angle atan2(int32 deltaX, int32 deltaZ);
// Game modes
Common::Error runGameMode(int mode);
@@ -264,15 +265,20 @@ private:
void clearStarfieldPixels();
void drawStarfield();
void updateStarfieldAndShips(bool arg0);
+ R3 *sub_19f24(R3 *r3);
+ void drawR3Shape(R3 *r3);
+ bool sub_1c022(R3 *r3);
Point3 constructPoint3ForStarfield(int16 x, int16 y, int16 z);
Point3 matrixMult(const Matrix &weight, const Point3 &point);
Point3 matrixMult(const Point3 &point, const Matrix &weight);
+ int32 scaleSpacePosition(int32 x, int32 z);
/**
* Creates something like an "identity" matrix? (Value 0x4000 along the diagonal)
*/
Matrix initMatrix();
+ Matrix initSpeedMatrixForXZMovement(Angle angle, const Matrix &matrix);
// Transporter room
void runTransportSequence(const Common::String &name);
@@ -542,8 +548,10 @@ public:
Common::Rect _starfieldRect;
R3 _enterpriseR3;
R3 *_r3List[NUM_SPACE_OBJECTS];
+ R3 *_orderedR3List[NUM_SPACE_OBJECTS];
Matrix _starPositionMatrix;
Matrix _someMatrix;
+ float _flt_50898;
Graphics *_gfx;
Sound *_sound;