Skip to content

Commit

Permalink
ACCESS: Fix freeing player sprites when the scene changes
Browse files Browse the repository at this point in the history
  • Loading branch information
dreammaster committed Aug 21, 2014
1 parent 5870b18 commit 4e5eb04
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 13 deletions.
3 changes: 0 additions & 3 deletions engines/access/animation.cpp
Expand Up @@ -293,9 +293,6 @@ void AnimationManager::freeAnimationData() {
}

void AnimationManager::clearTimers() {
for (uint i = 0; i < _animationTimers.size(); ++i)
delete _animationTimers[i];

_animationTimers.clear();
}

Expand Down
6 changes: 3 additions & 3 deletions engines/access/player.cpp
Expand Up @@ -155,16 +155,16 @@ void Player::load() {
}

void Player::loadSprites(const Common::String &name) {
delete _playerSprites1;
_playerSprites = nullptr;
freeSprites();

const byte *data = _vm->_files->loadFile(name);
_playerSprites1 = new SpriteResource(_vm, data, _vm->_files->_filesize,
DisposeAfterUse::YES);
}

void Player::freeSprites() {
delete _playerSprites;
delete _playerSprites1;
_playerSprites1 = nullptr;
_playerSprites = nullptr;
}

Expand Down
12 changes: 6 additions & 6 deletions engines/access/room.cpp
Expand Up @@ -88,17 +88,17 @@ void Room::doRoom() {
doCommands();

// DOROOMFLASHBACK jump point
if (_function == 1) {
if (_function == FN_CLEAR1) {
clearRoom();
break;
} else if (_function == 2) {
} else if (_function == FN_CLEAR2) {
clearRoom();
return;
} else if (_function == 3) {
} else if (_function == FN_RELOAD) {
reloadRoom1();
reloadFlag = true;
break;
} else if (_function == 4) {
} else if (_function == FN_BREAK) {
break;
}

Expand All @@ -108,7 +108,7 @@ void Room::doRoom() {
_function = 0;
roomLoop();

if (_function == 1) {
if (_function == FN_CLEAR1) {
clearRoom();
break;
} else {
Expand All @@ -122,7 +122,7 @@ void Room::doRoom() {
_function = 0;
roomLoop();

if (_function == 1) {
if (_function == FN_CLEAR1) {
clearRoom();
break;
} else {
Expand Down
2 changes: 2 additions & 0 deletions engines/access/room.h
Expand Up @@ -58,6 +58,8 @@ class JetFrame {
}
};

enum Function { FN_NONE = 0, FN_CLEAR1 = 1, FN_CLEAR2 = 2, FN_RELOAD = 3, FN_BREAK = 4 };

class Room: public Manager {
private:
void roomLoop();
Expand Down
2 changes: 1 addition & 1 deletion engines/access/scripts.cpp
Expand Up @@ -303,7 +303,7 @@ void Scripts::cmdNewRoom() {
if (roomNumber != CURRENT_ROOM)
_vm->_player->_roomNumber = roomNumber;

_vm->_room->_function = 1;
_vm->_room->_function = FN_CLEAR1;
_vm->freeChar();
_vm->_converseMode = 0;
cmdRetPos();
Expand Down

0 comments on commit 4e5eb04

Please sign in to comment.