Skip to content

Commit

Permalink
Emulate legacy rm2k/rm2k3 move picture behavior
Browse files Browse the repository at this point in the history
MovePicture command doesn't change position of pictures
with fixed_to_map chunk set.

Used in Destined game See: EasyRPG#1741
  • Loading branch information
mateofio committed Dec 4, 2019
1 parent d817cde commit 67d6419
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
14 changes: 9 additions & 5 deletions src/game_picture.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ void Game_Picture::Show(const ShowParams& params) {
data.name = params.name;
data.use_transparent_color = params.use_transparent_color;
data.fixed_to_map = params.fixed_to_map;
SetNonEffectParams(params);
SetNonEffectParams(params, true);

data.effect_mode = params.effect_mode;
if (data.effect_mode == RPG::SavePicture::Effect_none) {
Expand Down Expand Up @@ -180,7 +180,9 @@ void Game_Picture::Show(const ShowParams& params) {
void Game_Picture::Move(const MoveParams& params) {
RPG::SavePicture& data = GetData();

SetNonEffectParams(params);
const bool ignore_position = Player::IsLegacy() && data.fixed_to_map;

SetNonEffectParams(params, !ignore_position);
data.time_left = params.duration * DEFAULT_FPS / 10;

// Note that data.effect_mode doesn't necessarily reflect the
Expand Down Expand Up @@ -359,11 +361,13 @@ void Game_Picture::Update() {
}
}

void Game_Picture::SetNonEffectParams(const Params& params) {
void Game_Picture::SetNonEffectParams(const Params& params, bool set_positions) {
RPG::SavePicture& data = GetData();

data.finish_x = params.position_x;
data.finish_y = params.position_y;
if (set_positions) {
data.finish_x = params.position_x;
data.finish_y = params.position_y;
}
data.finish_magnify = params.magnify;
data.finish_top_trans = params.top_trans;
data.finish_bot_trans = params.bottom_trans;
Expand Down
2 changes: 1 addition & 1 deletion src/game_picture.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ class Game_Picture {
int last_spritesheet_frame = 0;
FileRequestBinding request_id;

void SetNonEffectParams(const Params& params);
void SetNonEffectParams(const Params& params, bool set_positions);
void SyncCurrentToFinish();
void RequestPictureSprite();
void OnPictureSpriteReady(FileRequestResult*);
Expand Down

0 comments on commit 67d6419

Please sign in to comment.