diff options
| -rw-r--r-- | saga/actor.cpp | 19 | ||||
| -rw-r--r-- | saga/font.cpp | 11 | ||||
| -rw-r--r-- | saga/saga.cpp | 2 | 
3 files changed, 10 insertions, 22 deletions
| diff --git a/saga/actor.cpp b/saga/actor.cpp index ddd3b85fa1..77625d3871 100644 --- a/saga/actor.cpp +++ b/saga/actor.cpp @@ -162,7 +162,7 @@ Actor::Actor(SagaEngine *vm) : _vm(vm) {  	_pathRect.left = 0; -	_pathRect.right = _vm->getDisplayWidth() - 1; +	_pathRect.right = _vm->getDisplayWidth();  	_pathRect.top = _vm->getPathYOffset();  	_pathRect.bottom = _vm->getStatusYOffset(); @@ -1217,23 +1217,22 @@ bool Actor::actorWalkTo(uint16 actorId, const ActorLocation &toLocation) {  					anotherActorScreenPosition = anotherActor->screenPosition;  					testBox.left = anotherActorScreenPosition.x - collision.x; -					testBox.right = anotherActorScreenPosition.x + collision.x; +					testBox.right = anotherActorScreenPosition.x + collision.x + 1;  					testBox.top = anotherActorScreenPosition.y - collision.y; -					testBox.bottom = anotherActorScreenPosition.y + collision.y; +					testBox.bottom = anotherActorScreenPosition.y + collision.y + 1;  					testBox2 = testBox; -					testBox2.right += 2; +					testBox2.right += 1;  					testBox2.left -= 1; -					testBox2.bottom += 1;  					if (testBox2.contains(pointFrom)) {  						if (pointFrom.x > anotherActorScreenPosition.x + 4) { -							testBox.right = pointFrom.x - 2; +							testBox.right = pointFrom.x - 1;  						} else {  							if (pointFrom.x < anotherActorScreenPosition.x - 4) {  								testBox.left = pointFrom.x + 2;  							} else {  								if (pointFrom.y > anotherActorScreenPosition.y) { -									testBox.bottom = pointFrom.y - 1;  +									testBox.bottom = pointFrom.y;   								} else {  									testBox.top = pointFrom.y + 1 ;  								} @@ -1241,7 +1240,7 @@ bool Actor::actorWalkTo(uint16 actorId, const ActorLocation &toLocation) {  						}  					} -					if ((testBox.left <= testBox.right) && (testBox.top <= testBox.bottom)) { +					if ((testBox.width() > 0) && (testBox.height() > 0)) {  						_barrierList[_barrierCount++] = testBox;  					}  				} @@ -1416,8 +1415,8 @@ void Actor::findActorPath(ActorData *actor, const Point &fromPoint, const Point  		intersect.bottom = MIN(_pathRect.bottom, _barrierList[i].bottom); -		for (iteratorPoint.y = intersect.top; iteratorPoint.y <= intersect.bottom; iteratorPoint.y++) { -			for (iteratorPoint.x = intersect.left; iteratorPoint.x <= intersect.right; iteratorPoint.x++) { +		for (iteratorPoint.y = intersect.top; iteratorPoint.y < intersect.bottom; iteratorPoint.y++) { +			for (iteratorPoint.x = intersect.left; iteratorPoint.x < intersect.right; iteratorPoint.x++) {  				setPathCell(iteratorPoint, kPathCellBarrier);  			}  		} diff --git a/saga/font.cpp b/saga/font.cpp index 9814540d8c..d28db992d6 100644 --- a/saga/font.cpp +++ b/saga/font.cpp @@ -98,7 +98,6 @@ int Font::loadFont(uint32 font_rn, int font_id) {  	// Load font resource  	if (RSC_LoadResource(_fontContext, font_rn, &fontres_p, &fontres_len) != SUCCESS) {  		error("Font::loadFont(): Couldn't load font resource."); -		return FAILURE;  	}  	if (fontres_len < FONT_DESCSIZE) { @@ -112,7 +111,6 @@ int Font::loadFont(uint32 font_rn, int font_id) {  	font = (FONT *)malloc(sizeof(*font));  	if (font == NULL) {  		error("Font:loadFont(): Memory allocation error."); -		return MEM;  	}  	// Read font header @@ -130,8 +128,6 @@ int Font::loadFont(uint32 font_rn, int font_id) {  	normal_font = (FONT_STYLE *)malloc(sizeof(*normal_font));  	if (normal_font == NULL) {  		error("Font::loadFont(): Memory allocation error."); -		free(font); -		return MEM;  	}  	normal_font->font_free_p = fontres_p; @@ -185,7 +181,6 @@ int Font::getHeight(int font_id) {  	if ((font_id < 0) || (font_id >= _nFonts) || (_fonts[font_id] == NULL)) {  		error("Font::getHeight(): Invalid font id."); -		return FAILURE;  	}  	font = _fonts[font_id]; @@ -219,7 +214,6 @@ FONT_STYLE *Font::createOutline(FONT_STYLE *src_font) {  	if (new_font == NULL) {  		error("Font::createOutline(): Memory allocation error."); -		return NULL;  	}  	memset(new_font, 0, sizeof(*new_font)); @@ -263,7 +257,6 @@ FONT_STYLE *Font::createOutline(FONT_STYLE *src_font) {  	if (new_font_data == NULL) {  		error("Font::createOutline(): Memory allocation error."); -		return NULL;  	}  	memset(new_font_data, 0, new_font_data_len); @@ -351,7 +344,6 @@ int Font::getStringWidth(int font_id, const char *test_str, size_t test_str_ct,  	if ((font_id < 0) || (font_id >= _nFonts) || (_fonts[font_id] == NULL)) {  		error("Font::getStringWidth(): Invalid font id."); -		return FAILURE;  	}  	font = _fonts[font_id]; @@ -380,13 +372,10 @@ int Font::draw(int font_id, SURFACE *ds, const char *draw_str, size_t draw_str_c  	if (!_initialized) {  		error("Font::draw(): Font Module not initialized."); - -		return FAILURE;  	}  	if ((font_id < 0) || (font_id >= _nFonts) || (_fonts[font_id] == NULL)) {  		error("Font::draw(): Invalid font id."); -		return FAILURE;  	}  	font = _fonts[font_id]; diff --git a/saga/saga.cpp b/saga/saga.cpp index 0c03d9f0c0..5ce9f8a164 100644 --- a/saga/saga.cpp +++ b/saga/saga.cpp @@ -258,7 +258,7 @@ int SagaEngine::go() {  		_system->delayMillis(10);  	} -	return 0; +	//return 0;  }  void SagaEngine::shutdown() { | 
