diff options
| -rw-r--r-- | engines/titanic/star_control/star_control_sub20.cpp | 32 | ||||
| -rw-r--r-- | engines/titanic/star_control/star_control_sub20.h | 2 | 
2 files changed, 19 insertions, 15 deletions
| diff --git a/engines/titanic/star_control/star_control_sub20.cpp b/engines/titanic/star_control/star_control_sub20.cpp index cc1029896a..ca60cc9948 100644 --- a/engines/titanic/star_control/star_control_sub20.cpp +++ b/engines/titanic/star_control/star_control_sub20.cpp @@ -32,7 +32,7 @@ CStarControlSub20::CStarControlSub20(const CStar20Data *src) {  	if (src) {  		copyFrom(src);  	} else { -		_field0 = 0.0; +		_size = 0.0;  		_field4 = 0.0;  		_field8 = 20.0;  		_fieldC = 0.0; @@ -56,22 +56,22 @@ void CStarControlSub20::copyTo(CStar20Data *dest) {  }  void CStarControlSub20::proc4() { -	if (!isLocked() && _field0 < _field10) { -		_field4 += _field0; +	if (!isLocked() && _size < _field10) { +		_field4 += _size;  		if (_field8 == _field4) -			_field0 -= _field4; +			_size -= _field4;  		else -			_field0 += _field4; +			_size += _field4;  	}  }  void CStarControlSub20::proc5() {  	if (!isLocked()) {  		_field4 -= _field8; -		if (_field4 == _field0) -			_field0 += _field4; +		if (_field4 == _size) +			_size += _field4;  		else -			_field0 -= _field4; +			_size -= _field4;  		if (_field4 < 0.0)  			_field4 = 0.0; @@ -80,19 +80,23 @@ void CStarControlSub20::proc5() {  void CStarControlSub20::proc6() {  	if (!isLocked()) -		_field0 = _field10; +		_size = _field10;  }  void CStarControlSub20::proc7() {  	if (!isLocked()) { -		_field0 = 0.0; +		_size = 0.0;  		_field4 = 0.0;  	}  }  void CStarControlSub20::proc11(CErrorCode &errorCode, FVector &v, const FMatrix &m) { -	if (_field0 > 0.0) { -		warning("TODO: CStarControlSub20::proc11"); +	if (_size > 0.0) { +		v._x += m._row3._x * _size; +		v._y += m._row3._y * _size; +		v._z += m._row3._z * _size; + +		errorCode.set();  	}  } @@ -110,7 +114,7 @@ void CStarControlSub20::clear() {  void CStarControlSub20::load(SimpleFile *file, int val) {  	if (!val) { -		_field0 = file->readFloat(); +		_size = file->readFloat();  		_field4 = file->readFloat();  		_field8 = file->readFloat();  		_fieldC = file->readFloat(); @@ -122,7 +126,7 @@ void CStarControlSub20::load(SimpleFile *file, int val) {  }  void CStarControlSub20::save(SimpleFile *file, int indent) { -	file->writeFloatLine(_field0, indent); +	file->writeFloatLine(_size, indent);  	file->writeFloatLine(_field4, indent);  	file->writeFloatLine(_field8, indent);  	file->writeFloatLine(_fieldC, indent); diff --git a/engines/titanic/star_control/star_control_sub20.h b/engines/titanic/star_control/star_control_sub20.h index 9dbabbb7f1..687f7d7320 100644 --- a/engines/titanic/star_control/star_control_sub20.h +++ b/engines/titanic/star_control/star_control_sub20.h @@ -30,7 +30,7 @@  namespace Titanic {  struct CStar20Data { -	double _field0; +	double _size;  	double _field4;  	double _field8;  	double _fieldC; | 
