Skip to content

Commit

Permalink
HOPKINS: Get rid of magic values
Browse files Browse the repository at this point in the history
  • Loading branch information
Strangerke committed May 6, 2013
1 parent 087a0f7 commit 9ddb291
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 29 deletions.
4 changes: 2 additions & 2 deletions engines/hopkins/globals.cpp
Expand Up @@ -89,7 +89,7 @@ Globals::Globals(HopkinsEngine *vm) {
_menuTextOff = 0;
_menuDisplayType = 0;
_checkDistanceFl = false;
_characterType = 0;
_characterType = CHARACTER_HOPKINS;
_actionMoveTo = false;
_actionDirection = DIR_NONE;

Expand Down Expand Up @@ -185,7 +185,7 @@ void Globals::clearAll() {
}

void Globals::loadCharacterData() {
assert(_characterType >= 0 && _characterType <= 2);
assert(_characterType >= CHARACTER_HOPKINS && _characterType <= CHARACTER_SAMANTHA);

const int *srcList[] = { HOPKINS_PERSO_0, HOPKINS_PERSO_1, HOPKINS_PERSO_2 };
const int *srcP = srcList[_characterType];
Expand Down
2 changes: 1 addition & 1 deletion engines/hopkins/globals.h
Expand Up @@ -172,7 +172,7 @@ class Globals {
int _characterMaxPosY;
int _baseMapColor;
int _spriteSize[500];
int _characterType;
PlayerCharacter _characterType;
uint _speed;
byte *_answerBuffer;
Savegame *_saveData;
Expand Down
12 changes: 6 additions & 6 deletions engines/hopkins/hopkins.cpp
Expand Up @@ -172,7 +172,7 @@ bool HopkinsEngine::runWin95Demo() {
_globals->_characterSpriteBuf = _fileIO->loadFile("PERSO.SPR");
}

_globals->_characterType = 0;
_globals->_characterType = CHARACTER_HOPKINS;
_objectsMan->_mapCarPosX = _objectsMan->_mapCarPosY = 0;
memset(_globals->_saveData, 0, 2000);
_globals->_exitId = 0;
Expand Down Expand Up @@ -453,7 +453,7 @@ bool HopkinsEngine::runLinuxDemo() {

_globals->_eventMode = EVENTMODE_DEFAULT;
_globals->_characterSpriteBuf = _fileIO->loadFile("PERSO.SPR");
_globals->_characterType = 0;
_globals->_characterType = CHARACTER_HOPKINS;
_objectsMan->_mapCarPosX = _objectsMan->_mapCarPosY = 0;
memset(_globals->_saveData, 0, 2000);
_globals->_exitId = 0;
Expand Down Expand Up @@ -813,7 +813,7 @@ bool HopkinsEngine::runFull() {
}
_globals->_eventMode = EVENTMODE_DEFAULT;
_globals->_characterSpriteBuf = _fileIO->loadFile("PERSO.SPR");
_globals->_characterType = 0;
_globals->_characterType = CHARACTER_HOPKINS;
_objectsMan->_mapCarPosX = _objectsMan->_mapCarPosY = 0;
memset(_globals->_saveData, 0, 2000);

Expand Down Expand Up @@ -1525,7 +1525,7 @@ bool HopkinsEngine::runFull() {
//_globals->_exitId = WBASE(); // Handles the 3D Doom level (Windows)
_soundMan->stopSound();
_globals->_characterSpriteBuf = _fileIO->loadFile("PERSO.SPR");
_globals->_characterType = 0;
_globals->_characterType = CHARACTER_HOPKINS;
_globals->_eventMode = EVENTMODE_DEFAULT;
_graphicsMan->_lineNbr = SCREEN_WIDTH;
break;
Expand Down Expand Up @@ -2177,7 +2177,7 @@ void HopkinsEngine::playEnding() {
_globals->_exitId = 300;
}
_globals->_characterSpriteBuf = _fileIO->loadFile("PERSO.SPR");
_globals->_characterType = 0;
_globals->_characterType = CHARACTER_HOPKINS;
_globals->_eventMode = EVENTMODE_DEFAULT;
}

Expand Down Expand Up @@ -2819,7 +2819,7 @@ void HopkinsEngine::handleOceanMaze(int16 curExitId, Common::String backgroundFi
_objectsMan->removeSprite(0);
_objectsMan->clearScreen();
_globals->_characterSpriteBuf = _fileIO->loadFile("PERSO.SPR");
_globals->_characterType = 0;
_globals->_characterType = CHARACTER_HOPKINS;
}

void HopkinsEngine::syncSoundSettings() {
Expand Down
4 changes: 2 additions & 2 deletions engines/hopkins/lines.cpp
Expand Up @@ -2481,11 +2481,11 @@ int LinesManager::testLine(int paramX, int paramY, int *testValue, int *foundLin

int LinesManager::computeYSteps(int idx) {
int zoomPct = _vm->_globals->_spriteSize[idx];
if (_vm->_globals->_characterType == 1) {
if (_vm->_globals->_characterType == CHARACTER_HOPKINS_CLONE) {
if (zoomPct < 0)
zoomPct = -zoomPct;
zoomPct = 20 * (5 * zoomPct - 100) / -80;
} else if (_vm->_globals->_characterType == 2) {
} else if (_vm->_globals->_characterType == CHARACTER_SAMANTHA) {
if (zoomPct < 0)
zoomPct = -zoomPct;
zoomPct = 20 * (5 * zoomPct - 165) / -67;
Expand Down
31 changes: 15 additions & 16 deletions engines/hopkins/objects.cpp
Expand Up @@ -2199,7 +2199,7 @@ void ObjectsManager::changeCharacterHead(PlayerCharacter oldCharacter, PlayerCha

loc = &_vm->_globals->_saveData->_realHopkins;
_vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("PERSO.SPR");
_vm->_globals->_characterType = 0;
_vm->_globals->_characterType = CHARACTER_HOPKINS;
addStaticSprite(_vm->_globals->_characterSpriteBuf, loc->_pos, 0, 64, loc->_zoomFactor, false, 34, 190);
animateSprite(0);
_vm->_globals->loadCharacterData();
Expand All @@ -2224,7 +2224,7 @@ void ObjectsManager::changeCharacterHead(PlayerCharacter oldCharacter, PlayerCha

loc = &_vm->_globals->_saveData->_samantha;
_vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("PSAMAN.SPR");
_vm->_globals->_characterType = 2;
_vm->_globals->_characterType = CHARACTER_SAMANTHA;
addStaticSprite(_vm->_globals->_characterSpriteBuf, loc->_pos, 0, 64, loc->_zoomFactor, false, 20, 127);
animateSprite(0);
_vm->_globals->loadCharacterData();
Expand Down Expand Up @@ -2287,9 +2287,9 @@ void ObjectsManager::changeCharacterHead(PlayerCharacter oldCharacter, PlayerCha
// Check Size
void ObjectsManager::computeAndSetSpriteSize() {
int size = _vm->_globals->_spriteSize[getSpriteY(0)];
if (_vm->_globals->_characterType == 1) {
if (_vm->_globals->_characterType == CHARACTER_HOPKINS_CLONE) {
size = 20 * (5 * abs(size) - 100) / -80;
} else if (_vm->_globals->_characterType == 2) {
} else if (_vm->_globals->_characterType == CHARACTER_SAMANTHA) {
size = 20 * (5 * abs(size) - 165) / -67;
}
setSpriteZoom(0, size);
Expand Down Expand Up @@ -3861,30 +3861,29 @@ void ObjectsManager::sceneControl2(const Common::String &backgroundFile, const C
_vm->_graphicsMan->setColorPercentage(253, 100, 100, 100);
_vm->_graphicsMan->setColorPercentage(251, 100, 100, 100);
_vm->_graphicsMan->setColorPercentage(254, 0, 0, 0);
if (_vm->_globals->_characterType) {
if (!_vm->_globals->_saveData->_data[svAlternateSpriteFl] && !_vm->_globals->_saveData->_data[svField356]) {
_vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("PERSO.SPR");
_vm->_globals->_characterType = 0;
}
if (_vm->_globals->_characterType != CHARACTER_HOPKINS && !_vm->_globals->_saveData->_data[svAlternateSpriteFl] && !_vm->_globals->_saveData->_data[svField356]) {
_vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("PERSO.SPR");
_vm->_globals->_characterType = CHARACTER_HOPKINS;
}
if (!_vm->_globals->_characterType && _vm->_globals->_saveData->_data[svAlternateSpriteFl] == 1) {

if (_vm->_globals->_characterType == CHARACTER_HOPKINS && _vm->_globals->_saveData->_data[svAlternateSpriteFl] == 1) {
_vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("HOPFEM.SPR");
_vm->_globals->_characterType = 1;
_vm->_globals->_characterType = CHARACTER_HOPKINS_CLONE;
}

if (_vm->_globals->_characterType != 2 && _vm->_globals->_saveData->_data[svField356] == 1) {
if (_vm->_globals->_characterType != CHARACTER_SAMANTHA && _vm->_globals->_saveData->_data[svField356] == 1) {
_vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("PSAMAN.SPR");
_vm->_globals->_characterType = 2;
_vm->_globals->_characterType = CHARACTER_SAMANTHA;
}
_vm->_globals->loadCharacterData();
switch (_vm->_globals->_characterType) {
case 0:
case CHARACTER_HOPKINS:
addStaticSprite(_vm->_globals->_characterSpriteBuf, _characterPos, 0, _startSpriteIndex, 0, false, 34, 190);
break;
case 1:
case CHARACTER_HOPKINS_CLONE:
addStaticSprite(_vm->_globals->_characterSpriteBuf, _characterPos, 0, _startSpriteIndex, 0, false, 28, 155);
break;
case 2:
case CHARACTER_SAMANTHA:
addStaticSprite(_vm->_globals->_characterSpriteBuf, _characterPos, 0, _startSpriteIndex, 0, false, 20, 127);
break;
}
Expand Down
4 changes: 2 additions & 2 deletions engines/hopkins/script.cpp
Expand Up @@ -955,7 +955,7 @@ int ScriptManager::handleOpcode(const byte *dataP) {

case 56:
_vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("HOPFEM.SPR");
_vm->_globals->_characterType = 1;
_vm->_globals->_characterType = CHARACTER_HOPKINS_CLONE;
_vm->_globals->_saveData->_data[svAlternateSpriteFl] = 1;
_vm->_globals->loadCharacterData();
_vm->_objectsMan->_sprite[0]._deltaX = 28;
Expand All @@ -965,7 +965,7 @@ int ScriptManager::handleOpcode(const byte *dataP) {

case 57:
_vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("PERSO.SPR");
_vm->_globals->_characterType = 0;
_vm->_globals->_characterType = CHARACTER_HOPKINS;
_vm->_globals->_saveData->_data[svAlternateSpriteFl] = 0;
_vm->_globals->loadCharacterData();
_vm->_objectsMan->_sprite[0]._deltaX = 34;
Expand Down

0 comments on commit 9ddb291

Please sign in to comment.