diff options
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/intern.h | 16 | ||||
-rw-r--r-- | scumm/script_v100he.cpp | 16 | ||||
-rw-r--r-- | scumm/script_v90he.cpp | 16 | ||||
-rw-r--r-- | scumm/sprite_he.cpp | 120 |
4 files changed, 84 insertions, 84 deletions
diff --git a/scumm/intern.h b/scumm/intern.h index ec11388d87..d2b90046ee 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -974,16 +974,16 @@ protected: void spriteGroupSet_case0_5(int spriteGroupId, int value); void spriteGroupSet_case0_6(int spriteGroupId, int value); void spriteGroupSet_case0_7(int spriteGroupId, int value); - void spriteGroupSet_case5_0(int spriteGroupId, int value); - void spriteGroupSet_case5_1(int spriteGroupId, int value); - void spriteGroupSet_case5_2(int spriteGroupId, int value); - void spriteGroupSet_case5_3(int spriteGroupId, int value); + void spriteGroupSet_bbox(int spriteGroupId, int x1, int y1, int x2, int y2); void spriteGroupSet_zorderPriority(int spriteGroupId, int value); void spriteGroupSet_tx_ty(int spriteGroupId, int value1, int value2); - void spriteGroupSet_case26(int spriteGroupId, int value); - void spriteGroupSet_case28(int spriteGroupId, int value1, int value2); - void spriteGroupSet_bbox(int spriteGroupId, int x1, int y1, int x2, int y2); - void spriteGroupSet_case56(int spriteGroupId); + void spriteGroupSet_inc_tx_ty(int spriteGroupId, int value1, int value2); + void spriteGroupSet_field_20(int spriteGroupId, int value); + void spriteGroupSet_scale_x_ratio_mul(int spriteGroupId, int value); + void spriteGroupSet_scale_x_ratio_div(int spriteGroupId, int value); + void spriteGroupSet_scale_y_ratio_mul(int spriteGroupId, int value); + void spriteGroupSet_scale_y_ratio_div(int spriteGroupId, int value); + void spriteGroupSet_flagNeedRedrawAnd(int spriteGroupId); void spritesAllocTables(int numSprites, int numGroups, int numMaxSprites); void spritesResetGroup(int spriteGroupId); diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp index c8a4d8513e..0a0c311526 100644 --- a/scumm/script_v100he.cpp +++ b/scumm/script_v100he.cpp @@ -848,7 +848,7 @@ void ScummEngine_v100he::o100_setSpriteGroupInfo() { if (!_curSpriteGroupId) break; - spriteGroupSet_case28(_curSpriteGroupId, value1, value2); + spriteGroupSet_tx_ty(_curSpriteGroupId, value1, value2); break; case 18: value4 = pop(); @@ -928,7 +928,7 @@ void ScummEngine_v100he::o100_setSpriteGroupInfo() { if (!_curSpriteGroupId) break; - spriteGroupSet_case26(_curSpriteGroupId, value1); + spriteGroupSet_field_20(_curSpriteGroupId, value1); break; case 49: value2 = pop(); @@ -936,7 +936,7 @@ void ScummEngine_v100he::o100_setSpriteGroupInfo() { if (!_curSpriteGroupId) break; - spriteGroupSet_tx_ty(_curSpriteGroupId, value1, value2); + spriteGroupSet_inc_tx_ty(_curSpriteGroupId, value1, value2); break; case 52: copyScriptString(string); @@ -967,16 +967,16 @@ void ScummEngine_v100he::o100_setSpriteGroupInfo() { switch (type) { case 0: - spriteGroupSet_case5_0(_curSpriteGroupId, value1); + spriteGroupSet_scale_x_ratio_mul(_curSpriteGroupId, value1); break; case 1: - spriteGroupSet_case5_1(_curSpriteGroupId, value1); + spriteGroupSet_scale_x_ratio_div(_curSpriteGroupId, value1); break; case 2: - spriteGroupSet_case5_2(_curSpriteGroupId, value1); + spriteGroupSet_scale_y_ratio_mul(_curSpriteGroupId, value1); break; case 3: - spriteGroupSet_case5_3(_curSpriteGroupId, value1); + spriteGroupSet_scale_y_ratio_div(_curSpriteGroupId, value1); break; default: error("o100_setSpriteGroupInfo subOp 60: Unknown case %d", subOp); @@ -986,7 +986,7 @@ void ScummEngine_v100he::o100_setSpriteGroupInfo() { if (!_curSpriteGroupId) break; - spriteGroupSet_case56(_curSpriteGroupId); + spriteGroupSet_flagNeedRedrawAnd(_curSpriteGroupId); break; default: error("o100_setSpriteGroupInfo: Unknown case %d", subOp); diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp index 2266aa8432..0003c049e4 100644 --- a/scumm/script_v90he.cpp +++ b/scumm/script_v90he.cpp @@ -1451,16 +1451,16 @@ void ScummEngine_v90he::o90_setSpriteGroupInfo() { switch (type) { case 0: - spriteGroupSet_case5_0(_curSpriteGroupId, value1); + spriteGroupSet_scale_x_ratio_mul(_curSpriteGroupId, value1); break; case 1: - spriteGroupSet_case5_1(_curSpriteGroupId, value1); + spriteGroupSet_scale_x_ratio_div(_curSpriteGroupId, value1); break; case 2: - spriteGroupSet_case5_2(_curSpriteGroupId, value1); + spriteGroupSet_scale_y_ratio_mul(_curSpriteGroupId, value1); break; case 3: - spriteGroupSet_case5_3(_curSpriteGroupId, value1); + spriteGroupSet_scale_y_ratio_div(_curSpriteGroupId, value1); break; default: error("o90_setSpriteGroupInfo subOp 5: Unknown case %d", subOp); @@ -1479,7 +1479,7 @@ void ScummEngine_v90he::o90_setSpriteGroupInfo() { if (!_curSpriteGroupId) break; - spriteGroupSet_tx_ty(_curSpriteGroupId, value1, value2); + spriteGroupSet_inc_tx_ty(_curSpriteGroupId, value1, value2); break; case 20: _curSpriteGroupId = pop(); @@ -1489,7 +1489,7 @@ void ScummEngine_v90he::o90_setSpriteGroupInfo() { if (!_curSpriteGroupId) break; - spriteGroupSet_case26(_curSpriteGroupId, value1); + spriteGroupSet_field_20(_curSpriteGroupId, value1); break; case 28: value2 = pop(); @@ -1497,7 +1497,7 @@ void ScummEngine_v90he::o90_setSpriteGroupInfo() { if (!_curSpriteGroupId) break; - spriteGroupSet_case28(_curSpriteGroupId, value1, value2); + spriteGroupSet_tx_ty(_curSpriteGroupId, value1, value2); break; case 30: value4 = pop(); @@ -1513,7 +1513,7 @@ void ScummEngine_v90he::o90_setSpriteGroupInfo() { if (!_curSpriteGroupId) break; - spriteGroupSet_case56(_curSpriteGroupId); + spriteGroupSet_flagNeedRedrawAnd(_curSpriteGroupId); break; case 180: if (!_curSpriteGroupId) diff --git a/scumm/sprite_he.cpp b/scumm/sprite_he.cpp index 03282797e4..7a12321f0a 100644 --- a/scumm/sprite_he.cpp +++ b/scumm/sprite_he.cpp @@ -855,130 +855,130 @@ void ScummEngine_v90he::spriteGroupSet_case0_7(int spriteGroupId, int value) { } } -void ScummEngine_v90he::spriteGroupSet_case5_0(int spriteGroupId, int value) { +void ScummEngine_v90he::spriteGroupSet_bbox(int spriteGroupId, int x1, int y1, int x2, int y2) { checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d"); - if (_spriteGroups[spriteGroupId].scale_x_ratio_mul == value) - return; - - _spriteGroups[spriteGroupId].scale_x_ratio_mul = value; - _spriteGroups[spriteGroupId].scale_x = _spriteGroups[spriteGroupId].scale_x_ratio_mul / _spriteGroups[spriteGroupId].scale_x_ratio_div; - - if ((_spriteGroups[spriteGroupId].scale_x_ratio_mul != _spriteGroups[spriteGroupId].scale_x_ratio_div) || (_spriteGroups[spriteGroupId].scale_y_ratio_mul != _spriteGroups[spriteGroupId].scale_y_ratio_div)) - _spriteGroups[spriteGroupId].scaling = 1; - else - _spriteGroups[spriteGroupId].scaling = 0; + _spriteGroups[spriteGroupId].flags |= kSGFClipBox; + _spriteGroups[spriteGroupId].bbox.left = x1; + _spriteGroups[spriteGroupId].bbox.top = y1; + _spriteGroups[spriteGroupId].bbox.right = x2; + _spriteGroups[spriteGroupId].bbox.bottom = y2; redrawSpriteGroup(spriteGroupId); } -void ScummEngine_v90he::spriteGroupSet_case5_1(int spriteGroupId, int value) { +void ScummEngine_v90he::spriteGroupSet_zorderPriority(int spriteGroupId, int value) { checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d"); - if (_spriteGroups[spriteGroupId].scale_x_ratio_div == value) + if (_spriteGroups[spriteGroupId].zorderPriority == value) return; - _spriteGroups[spriteGroupId].scale_x_ratio_div = value; - _spriteGroups[spriteGroupId].scale_x = _spriteGroups[spriteGroupId].scale_x_ratio_mul / _spriteGroups[spriteGroupId].scale_x_ratio_div; - - if ((_spriteGroups[spriteGroupId].scale_x_ratio_mul != _spriteGroups[spriteGroupId].scale_x_ratio_div) || (_spriteGroups[spriteGroupId].scale_y_ratio_mul != _spriteGroups[spriteGroupId].scale_y_ratio_div)) - _spriteGroups[spriteGroupId].scaling = 1; - else - _spriteGroups[spriteGroupId].scaling = 0; + _spriteGroups[spriteGroupId].zorderPriority = value; redrawSpriteGroup(spriteGroupId); } -void ScummEngine_v90he::spriteGroupSet_case5_2(int spriteGroupId, int value) { +void ScummEngine_v90he::spriteGroupSet_tx_ty(int spriteGroupId, int value1, int value2) { checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d"); - if (_spriteGroups[spriteGroupId].scale_y_ratio_mul == value) + if (_spriteGroups[spriteGroupId].tx == value1 && _spriteGroups[spriteGroupId].ty == value2) return; - _spriteGroups[spriteGroupId].scale_y_ratio_mul = value; - _spriteGroups[spriteGroupId].scale_y = _spriteGroups[spriteGroupId].scale_y_ratio_mul / _spriteGroups[spriteGroupId].scale_y_ratio_div; - - if ((_spriteGroups[spriteGroupId].scale_x_ratio_mul != _spriteGroups[spriteGroupId].scale_x_ratio_div) || (_spriteGroups[spriteGroupId].scale_y_ratio_mul != _spriteGroups[spriteGroupId].scale_y_ratio_div)) - _spriteGroups[spriteGroupId].scaling = 1; - else - _spriteGroups[spriteGroupId].scaling = 0; + _spriteGroups[spriteGroupId].tx = value1; + _spriteGroups[spriteGroupId].ty = value2; redrawSpriteGroup(spriteGroupId); } -void ScummEngine_v90he::spriteGroupSet_case5_3(int spriteGroupId, int value) { +void ScummEngine_v90he::spriteGroupSet_inc_tx_ty(int spriteGroupId, int value1, int value2) { checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d"); - if (_spriteGroups[spriteGroupId].scale_y_ratio_div == value) - return; - - _spriteGroups[spriteGroupId].scale_y_ratio_div = value; - _spriteGroups[spriteGroupId].scale_y = _spriteGroups[spriteGroupId].scale_y_ratio_mul / _spriteGroups[spriteGroupId].scale_y_ratio_div; - - if ((_spriteGroups[spriteGroupId].scale_x_ratio_mul != _spriteGroups[spriteGroupId].scale_x_ratio_div) || (_spriteGroups[spriteGroupId].scale_y_ratio_mul != _spriteGroups[spriteGroupId].scale_y_ratio_div)) - _spriteGroups[spriteGroupId].scaling = 1; - else - _spriteGroups[spriteGroupId].scaling = 0; + _spriteGroups[spriteGroupId].tx += value1; + _spriteGroups[spriteGroupId].ty += value2; redrawSpriteGroup(spriteGroupId); } -void ScummEngine_v90he::spriteGroupSet_zorderPriority(int spriteGroupId, int value) { +void ScummEngine_v90he::spriteGroupSet_field_20(int spriteGroupId, int value) { checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d"); - if (_spriteGroups[spriteGroupId].zorderPriority == value) + if (_spriteGroups[spriteGroupId].field_20 == value) return; - _spriteGroups[spriteGroupId].zorderPriority = value; + _spriteGroups[spriteGroupId].field_20 = value; redrawSpriteGroup(spriteGroupId); } -void ScummEngine_v90he::spriteGroupSet_tx_ty(int spriteGroupId, int value1, int value2) { +void ScummEngine_v90he::spriteGroupSet_scale_x_ratio_mul(int spriteGroupId, int value) { checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d"); - _spriteGroups[spriteGroupId].tx += value1; - _spriteGroups[spriteGroupId].ty += value2; + if (_spriteGroups[spriteGroupId].scale_x_ratio_mul == value) + return; + + _spriteGroups[spriteGroupId].scale_x_ratio_mul = value; + _spriteGroups[spriteGroupId].scale_x = _spriteGroups[spriteGroupId].scale_x_ratio_mul / _spriteGroups[spriteGroupId].scale_x_ratio_div; + + if ((_spriteGroups[spriteGroupId].scale_x_ratio_mul != _spriteGroups[spriteGroupId].scale_x_ratio_div) || (_spriteGroups[spriteGroupId].scale_y_ratio_mul != _spriteGroups[spriteGroupId].scale_y_ratio_div)) + _spriteGroups[spriteGroupId].scaling = 1; + else + _spriteGroups[spriteGroupId].scaling = 0; redrawSpriteGroup(spriteGroupId); } -void ScummEngine_v90he::spriteGroupSet_case26(int spriteGroupId, int value) { +void ScummEngine_v90he::spriteGroupSet_scale_x_ratio_div(int spriteGroupId, int value) { checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d"); - if (_spriteGroups[spriteGroupId].field_20 == value) + if (_spriteGroups[spriteGroupId].scale_x_ratio_div == value) return; - _spriteGroups[spriteGroupId].field_20 = value; + _spriteGroups[spriteGroupId].scale_x_ratio_div = value; + _spriteGroups[spriteGroupId].scale_x = _spriteGroups[spriteGroupId].scale_x_ratio_mul / _spriteGroups[spriteGroupId].scale_x_ratio_div; + + if ((_spriteGroups[spriteGroupId].scale_x_ratio_mul != _spriteGroups[spriteGroupId].scale_x_ratio_div) || (_spriteGroups[spriteGroupId].scale_y_ratio_mul != _spriteGroups[spriteGroupId].scale_y_ratio_div)) + _spriteGroups[spriteGroupId].scaling = 1; + else + _spriteGroups[spriteGroupId].scaling = 0; redrawSpriteGroup(spriteGroupId); } -void ScummEngine_v90he::spriteGroupSet_case28(int spriteGroupId, int value1, int value2) { +void ScummEngine_v90he::spriteGroupSet_scale_y_ratio_mul(int spriteGroupId, int value) { checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d"); - if (_spriteGroups[spriteGroupId].tx == value1 && _spriteGroups[spriteGroupId].ty == value2) + if (_spriteGroups[spriteGroupId].scale_y_ratio_mul == value) return; - _spriteGroups[spriteGroupId].tx = value1; - _spriteGroups[spriteGroupId].ty = value2; + _spriteGroups[spriteGroupId].scale_y_ratio_mul = value; + _spriteGroups[spriteGroupId].scale_y = _spriteGroups[spriteGroupId].scale_y_ratio_mul / _spriteGroups[spriteGroupId].scale_y_ratio_div; + + if ((_spriteGroups[spriteGroupId].scale_x_ratio_mul != _spriteGroups[spriteGroupId].scale_x_ratio_div) || (_spriteGroups[spriteGroupId].scale_y_ratio_mul != _spriteGroups[spriteGroupId].scale_y_ratio_div)) + _spriteGroups[spriteGroupId].scaling = 1; + else + _spriteGroups[spriteGroupId].scaling = 0; redrawSpriteGroup(spriteGroupId); } -void ScummEngine_v90he::spriteGroupSet_bbox(int spriteGroupId, int x1, int y1, int x2, int y2) { +void ScummEngine_v90he::spriteGroupSet_scale_y_ratio_div(int spriteGroupId, int value) { checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d"); - _spriteGroups[spriteGroupId].flags |= kSGFClipBox; - _spriteGroups[spriteGroupId].bbox.left = x1; - _spriteGroups[spriteGroupId].bbox.top = y1; - _spriteGroups[spriteGroupId].bbox.right = x2; - _spriteGroups[spriteGroupId].bbox.bottom = y2; + if (_spriteGroups[spriteGroupId].scale_y_ratio_div == value) + return; + + _spriteGroups[spriteGroupId].scale_y_ratio_div = value; + _spriteGroups[spriteGroupId].scale_y = _spriteGroups[spriteGroupId].scale_y_ratio_mul / _spriteGroups[spriteGroupId].scale_y_ratio_div; + + if ((_spriteGroups[spriteGroupId].scale_x_ratio_mul != _spriteGroups[spriteGroupId].scale_x_ratio_div) || (_spriteGroups[spriteGroupId].scale_y_ratio_mul != _spriteGroups[spriteGroupId].scale_y_ratio_div)) + _spriteGroups[spriteGroupId].scaling = 1; + else + _spriteGroups[spriteGroupId].scaling = 0; redrawSpriteGroup(spriteGroupId); } -void ScummEngine_v90he::spriteGroupSet_case56(int spriteGroupId) { +void ScummEngine_v90he::spriteGroupSet_flagNeedRedrawAnd(int spriteGroupId) { checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d"); _spriteGroups[spriteGroupId].flags &= ~(kSGFNeedRedraw); |