[Scummvm-git-logs] scummvm master -> 1b7a847e6318d50aea8a4fe72e33c31a08f24998

dreammaster dreammaster at scummvm.org
Sat Mar 18 01:27:43 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:
1b7a847e63 TITANIC: Finisheed CStarControlSub5 class


Commit: 1b7a847e6318d50aea8a4fe72e33c31a08f24998
    https://github.com/scummvm/scummvm/commit/1b7a847e6318d50aea8a4fe72e33c31a08f24998
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-03-17T20:27:37-04:00

Commit Message:
TITANIC: Finisheed CStarControlSub5 class

Changed paths:
    engines/titanic/star_control/star_control_sub5.cpp


diff --git a/engines/titanic/star_control/star_control_sub5.cpp b/engines/titanic/star_control/star_control_sub5.cpp
index 3e4f9a4..8c33297 100644
--- a/engines/titanic/star_control/star_control_sub5.cpp
+++ b/engines/titanic/star_control/star_control_sub5.cpp
@@ -506,40 +506,85 @@ void CStarControlSub5::fn1() {
 }
 
 bool CStarControlSub5::setupEntry(int width, int height, int index, double val) {
-	/*
 	if (width < 2 || height < 3)
 		return false;
 
 	SubEntry &entry = _array[index];
 	entry.clear();
 
-	int height2 = height - 2;
-	int height1 = height - 1;
-	entry._data1.resize((2 * height - 3) * width);
-	entry._data2.resize(width * height2 + 2);
-	entry._data2[0] = FVector(0.0, val, 0.0);
+	const double FACTOR = 2 * M_PI / 360.0;
+	int d1Count, d2Count, size3, height1;
+	int ctr, ctr2, idx, offset, f11;
+	double vx, vy, f5, f6, f7, f8, f9, f10;
+
+	d1Count = width * (2 * height - 3);
+	d2Count = (height - 2) * width + 2;
+	entry._data1.resize(d1Count);
+	entry._data2.resize(d2Count);
+
+	height1 = height - 1;
+	entry._data2[0]._y = val;
+
+	vy = 180.0 / (double)height1;
+	vx = 360.0 / (double)width;
+
+	for (ctr = height - 2, idx = 0; ctr > 0; --ctr, vy *= 2) {
+		f5 = 0.0;
+		f6 = cos(vy * FACTOR);
+		f7 = sin(vy * FACTOR);
 
-	index = 1;
-	double vy = 180.0 / (double)height1;
-	double vx = 360.0 / (double)width;
-	const double FACTOR = 3.1415927 * 0.0055555557;
+		if (width > 0) {
+			f8 = f6 * val;
 
-	if (height1 > 1) {
-		double yAmount = vy;
-		int width12 = width * 12;
-		for (int yCtr = height1 - 1; yCtr > 0; --yCtr, yAmount += vy) {
-			double sineVal = sin(yAmount * FACTOR);
+			for (int xp = width; xp > 0; --xp, ++idx, f5 += vx) {
+				f9 = f5 * FACTOR;
+				f10 = cos(f9) * f7 * val;
 
+				FVector &tempV = entry._data2[idx];
+				tempV._x = sin(f9) * f7 * val;
+				tempV._y = f8;
+				tempV._z = f10;
+			}
+		}
+	}
+	entry._data2[idx] = FVector(0.0, -1.0, 0.0);
+
+	size3 = width * (height - 3) + 1;
+	offset = 0;
+	Data1 *data1P = &entry._data1[0];
+	for (ctr = 0; ctr < width; ++ctr, ++size3) {
+		data1P->_index1 = 0;
+		data1P->_index2 = size3 - width * (height - 3);
+		++data1P;
+
+		data1P->_index1 = d2Count - 1;
+		data1P->_index2 = size3;
+		++data1P;
+	}
 
-			| 0.0 * FACTOR |
-			| cos(yAmount * FACTOR) * val |
-			| 0.0 |
-			|yAmount|
+	f11 = 1;
+	for (ctr = 1; ctr < height1; ++ctr, f11 += width) {
+		data1P = &entry._data1[offset];
+
+		for (ctr2 = 0; ctr2 < width; ++ctr2) {
+			data1P->_index1 = ctr2 + f11;
+			if (ctr2 == width - 1)
+				data1P->_index2 = f11;
+			else
+				data1P->_index2 = ctr2 + f11 + 1;
+
+			++offset;
+			++data1P;
+
+			if (ctr < height - 2) {
+				data1P->_index1 = ctr2 + f11;
+				++offset;
+				data1P->_index2 = width + ctr2 + f11;
+				++data1P;
+			}
 		}
 	}
-	// TODO
 
-	*/
 	return true;
 }
 





More information about the Scummvm-git-logs mailing list