From f4775775b8f62d1e2eba6a7220543fb91d87dcbd Mon Sep 17 00:00:00 2001 From: Alexander Batalov Date: Fri, 23 Dec 2022 15:13:05 +0300 Subject: [PATCH] Review dude move/run functions --- src/animation.cc | 40 +++++++++++++++++----------------------- src/animation.h | 6 +++--- 2 files changed, 20 insertions(+), 26 deletions(-) diff --git a/src/animation.cc b/src/animation.cc index cfd91b8..49b725b 100644 --- a/src/animation.cc +++ b/src/animation.cc @@ -302,9 +302,6 @@ static bool gAnimationInStop = false; // 0x510728 static bool _anim_in_bk = false; -// 0x51072C -static int _lastDestination = -2; - // 0x510730 static unsigned int _last_time_ = 0; @@ -2953,7 +2950,7 @@ static void _object_anim_compact() } // 0x417FFC -int _check_move(int* a1) +int _check_move(int* actionPointsPtr) { int x; int y; @@ -2965,15 +2962,14 @@ int _check_move(int* a1) } if (isInCombat()) { - if (*a1 != -1) { + if (*actionPointsPtr != -1) { if (gPressedPhysicalKeys[SDL_SCANCODE_RCTRL] || gPressedPhysicalKeys[SDL_SCANCODE_LCTRL]) { int hitMode; bool aiming; interfaceGetCurrentHitMode(&hitMode, &aiming); - int v6 = itemGetActionPointCost(gDude, hitMode, aiming); - *a1 = *a1 - v6; - if (*a1 <= 0) { + *actionPointsPtr -= itemGetActionPointCost(gDude, hitMode, aiming); + if (*actionPointsPtr <= 0) { return -1; } } @@ -2988,36 +2984,34 @@ int _check_move(int* a1) } // 0x4180B4 -int _dude_move(int a1) +int _dude_move(int actionPoints) { - int v1; - int tile = _check_move(&v1); + // 0x51072C + static int lastDestination = -2; + + int tile = _check_move(&actionPoints); if (tile == -1) { return -1; } - if (_lastDestination == tile) { - return _dude_run(a1); + if (lastDestination == tile) { + return _dude_run(actionPoints); } - _lastDestination = tile; + lastDestination = tile; reg_anim_begin(ANIMATION_REQUEST_RESERVED); - animationRegisterMoveToTile(gDude, tile, gDude->elevation, a1, 0); + animationRegisterMoveToTile(gDude, tile, gDude->elevation, actionPoints, 0); return reg_anim_end(); } // 0x41810C -int _dude_run(int a1) +int _dude_run(int actionPoints) { - int a4; - int tile_num; - - a4 = a1; - tile_num = _check_move(&a4); - if (tile_num == -1) { + int tile = _check_move(&actionPoints); + if (tile == -1) { return -1; } @@ -3027,7 +3021,7 @@ int _dude_run(int a1) reg_anim_begin(ANIMATION_REQUEST_RESERVED); - animationRegisterRunToTile(gDude, tile_num, gDude->elevation, a4, 0); + animationRegisterRunToTile(gDude, tile, gDude->elevation, actionPoints, 0); return reg_anim_end(); } diff --git a/src/animation.h b/src/animation.h index 6c1e5bc..68625bd 100644 --- a/src/animation.h +++ b/src/animation.h @@ -148,9 +148,9 @@ int pathfinderFindPath(Object* object, int from, int to, unsigned char* rotation int _make_straight_path(Object* a1, int from, int to, STRUCT_530014_28* pathNodes, Object** a5, int a6); int _make_straight_path_func(Object* a1, int from, int to, STRUCT_530014_28* a4, Object** a5, int a6, Object* (*a7)(Object*, int, int)); void _object_animate(); -int _check_move(int* a1); -int _dude_move(int a1); -int _dude_run(int a1); +int _check_move(int* actionPointsPtr); +int _dude_move(int actionPoints); +int _dude_run(int actionPoints); void _dude_fidget(); void _dude_stand(Object* obj, int rotation, int fid); void _dude_standup(Object* a1);