[Scummvm-git-logs] scummvm master -> 15c0cb425899803c3ba884413303a817ed5ed5a5
dreammaster
dreammaster at scummvm.org
Sun Mar 5 21:09:56 CET 2017
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
15c0cb4258 TITANIC: Added remainder of CStarView class
Commit: 15c0cb425899803c3ba884413303a817ed5ed5a5
https://github.com/scummvm/scummvm/commit/15c0cb425899803c3ba884413303a817ed5ed5a5
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-03-05T15:09:57-05:00
Commit Message:
TITANIC: Added remainder of CStarView class
Changed paths:
engines/titanic/star_control/fvector.h
engines/titanic/star_control/star_control_sub12.cpp
engines/titanic/star_control/star_control_sub12.h
engines/titanic/star_control/star_control_sub5.cpp
engines/titanic/star_control/star_control_sub5.h
engines/titanic/star_control/star_field.h
engines/titanic/star_control/star_view.cpp
diff --git a/engines/titanic/star_control/fvector.h b/engines/titanic/star_control/fvector.h
index a54e94d..b85cbb1 100644
--- a/engines/titanic/star_control/fvector.h
+++ b/engines/titanic/star_control/fvector.h
@@ -23,6 +23,8 @@
#ifndef TITANIC_FVECTOR_H
#define TITANIC_FVECTOR_H
+#include "titanic/star_control/fpoint.h"
+
namespace Titanic {
class CStarControlSub6;
@@ -83,6 +85,16 @@ public:
_y -= delta._y;
_z -= delta._z;
}
+
+ void operator+=(const FPoint &delta) {
+ _x += delta._x;
+ _y += delta._y;
+ }
+
+ void operator-=(const FPoint &delta) {
+ _x -= delta._x;
+ _y -= delta._y;
+ }
};
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub12.cpp b/engines/titanic/star_control/star_control_sub12.cpp
index ff0edb5..7906130 100644
--- a/engines/titanic/star_control/star_control_sub12.cpp
+++ b/engines/titanic/star_control/star_control_sub12.cpp
@@ -269,7 +269,8 @@ bool CStarControlSub12::setupHandler(const CStar20Data *src) {
assert(!_handlerP);
_handlerP = handler;
return true;
- } else {
+ }
+ else {
return false;
}
}
@@ -281,4 +282,16 @@ void CStarControlSub12::deleteHandler() {
}
}
+void CStarControlSub12::fn1(CStarControlSub13 *sub13, const FVector &v) {
+ // TODO
+}
+
+void CStarControlSub12::fn2(FVector v1, FVector v2, FVector v3) {
+ // TODO
+}
+
+void CStarControlSub12::fn3(CStarControlSub13 *sub13, const FVector &v) {
+ // TODO
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub12.h b/engines/titanic/star_control/star_control_sub12.h
index 2e5d83b..5fac6bf 100644
--- a/engines/titanic/star_control/star_control_sub12.h
+++ b/engines/titanic/star_control/star_control_sub12.h
@@ -121,6 +121,10 @@ public:
bool is108() const { return _field108; }
void set108() { _field108 = true; }
void reset108() { _field108 = false; }
+
+ void fn1(CStarControlSub13 *sub13, const FVector &v);
+ void fn2(FVector v1, FVector v2, FVector v3);
+ void fn3(CStarControlSub13 *sub13, const FVector &v);
};
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub5.cpp b/engines/titanic/star_control/star_control_sub5.cpp
index 16aff46..731d81f 100644
--- a/engines/titanic/star_control/star_control_sub5.cpp
+++ b/engines/titanic/star_control/star_control_sub5.cpp
@@ -25,8 +25,7 @@
namespace Titanic {
-CStarControlSub5::CStarControlSub5() :
- _field4(1) {
+CStarControlSub5::CStarControlSub5() : _flag(true) {
}
bool CStarControlSub5::setup() {
@@ -43,4 +42,8 @@ void CStarControlSub5::proc3(CErrorCode *errorCode) {
// TODO
}
+void CStarControlSub5::fn1() {
+ _flag = !_flag;
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub5.h b/engines/titanic/star_control/star_control_sub5.h
index 4e1a5be..4927a14 100644
--- a/engines/titanic/star_control/star_control_sub5.h
+++ b/engines/titanic/star_control/star_control_sub5.h
@@ -39,7 +39,7 @@ class CStarControlSub5 {
int _fieldC;
};
private:
- int _field4;
+ bool _flag;
CStarControlSub6 _sub1, _sub2;
#if 0
SubEntry _array[5];
@@ -56,8 +56,10 @@ public:
CSurfaceArea *surfaceArea, CStarControlSub12 *sub12);
virtual void proc3(CErrorCode *errorCode);
- int get4() const { return _field4; }
- void set4(int val) { _field4 = val; }
+ bool get4() const { return _flag; }
+ void set4(bool val) { _flag = val; }
+
+ void fn1();
};
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_field.h b/engines/titanic/star_control/star_field.h
index 34f1171..6046ce2 100644
--- a/engines/titanic/star_control/star_field.h
+++ b/engines/titanic/star_control/star_field.h
@@ -48,9 +48,6 @@ private:
private:
void fn3(CSurfaceArea *surfaceArea);
void fn4(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12);
- double fn5(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12,
- FVector &v1, FVector &v2, FVector &v3);
-
public:
CStarField();
@@ -108,9 +105,12 @@ public:
}
void fn1(CErrorCode *errorCode);
+ double fn5(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12,
+ FVector &v1, FVector &v2, FVector &v3);
void fn6(CVideoSurface *surface, CStarControlSub12 *sub12);
void fn7();
void fn8(CVideoSurface *surface);
+ void fn9() { _sub5.fn1(); }
/**
* Called when the starfield is clicked
diff --git a/engines/titanic/star_control/star_view.cpp b/engines/titanic/star_control/star_view.cpp
index 836de0f..23e9325 100644
--- a/engines/titanic/star_control/star_view.cpp
+++ b/engines/titanic/star_control/star_view.cpp
@@ -339,11 +339,13 @@ void CStarView::toggleMode() {
}
void CStarView::fn11() {
- // TODO
+ if (_starField)
+ _starField->fn9();
}
void CStarView::fn12() {
- // TODO
+ if (_starField)
+ _starField->toggle4();
}
void CStarView::fn13() {
@@ -373,7 +375,36 @@ void CStarView::setHasReference() {
}
void CStarView::fn16() {
- // TODO
+ if (_starField && !_showingPhoto) {
+ CSurfaceArea surfaceArea(_videoSurface);
+ FVector v1, v2, v3;
+ double val = _starField->fn5(&surfaceArea, &_sub12, v1, v2, v3);
+
+ if (val > -1.0) {
+ v1 += surfaceArea._centroid;
+ v3 += surfaceArea._centroid;
+
+ switch (_starField->get88()) {
+ case -1:
+ _sub12.fn2(v1, v2, v3);
+ _starField->fn7();
+ break;
+
+ case 0:
+ _sub12.fn3(&_sub13, v2);
+ _starField->fn7();
+ break;
+
+ case 1:
+ _sub12.fn1(&_sub13, v2);
+ _starField->fn7();
+ break;
+
+ default:
+ break;
+ }
+ }
+ }
}
void CStarView::fn17() {
More information about the Scummvm-git-logs
mailing list