[Scummvm-git-logs] scummvm master -> d004929c57d57c25dd80db929cb3f4172fb2fe98
mduggan
mgithub at guarana.org
Sat Mar 6 06:15:07 UTC 2021
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
d004929c57 ULTIMA8: Lots of improvements to Crusader mover process.
Commit: d004929c57d57c25dd80db929cb3f4172fb2fe98
https://github.com/scummvm/scummvm/commit/d004929c57d57c25dd80db929cb3f4172fb2fe98
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-03-06T15:14:44+09:00
Commit Message:
ULTIMA8: Lots of improvements to Crusader mover process.
Makes it more like original. Probably still some work to do.
Changed paths:
engines/ultima/ultima8/graphics/anim_dat.cpp
engines/ultima/ultima8/world/actors/actor.cpp
engines/ultima/ultima8/world/actors/actor_anim_process.cpp
engines/ultima/ultima8/world/actors/animation.cpp
engines/ultima/ultima8/world/actors/animation.h
engines/ultima/ultima8/world/actors/cru_avatar_mover_process.cpp
engines/ultima/ultima8/world/gravity_process.cpp
engines/ultima/ultima8/world/item.cpp
diff --git a/engines/ultima/ultima8/graphics/anim_dat.cpp b/engines/ultima/ultima8/graphics/anim_dat.cpp
index ab9b81f14d..4a6bd4a4cd 100644
--- a/engines/ultima/ultima8/graphics/anim_dat.cpp
+++ b/engines/ultima/ultima8/graphics/anim_dat.cpp
@@ -88,55 +88,57 @@ uint32 AnimDat::getActionNumberForSequence(Animation::Sequence action, const Act
switch (action) {
case Animation::stand:
- return 0;
+ return Animation::standCru;
case Animation::step:
- return 1; // Same as walk in crusader.
+ return Animation::walkCru; // Same as walk in crusader.
case Animation::walk:
- return 1;
+ return Animation::walkCru;
case Animation::retreat:
- return (smallwpn ? 2 : 45);
+ return (smallwpn ? Animation::retreatSmallWeapon : Animation::retreatLargeWeapon);
case Animation::run:
- return (smallwpn ? 3 : 49);
- case Animation::combatRun:
- return (smallwpn ? 48 : 49);
+ return Animation::runCru;
+ case Animation::combatRunSmallWeapon:
+ return (smallwpn ? Animation::combatRunSmallWeapon : Animation::combatRunLargeWeapon);
case Animation::combatStand:
- return (smallwpn ? 4 : 37);
- // Note: 5, 6, 9, 10 == nothing (for avatar)?
+ return (smallwpn ? Animation::combatStandSmallWeapon : Animation::combatStandLargeWeapon);
case Animation::unreadyWeapon:
- return (smallwpn ? 11: 16);
+ return (smallwpn ? Animation::unreadySmallWeapon : Animation::unreadyLargeWeapon);
case Animation::readyWeapon:
- return (smallwpn ? 7 : 12);
+ return (smallwpn ? Animation::readySmallWeapon : Animation::readyLargeWeapon);
case Animation::attack: {
if (smallwpn)
- return 8;
- return (altfire ? 54 : 13);
+ return Animation::fireSmallWeapon;
+ return (altfire ? Animation::brightFireLargeWpn : Animation::fireLargeWeapon);
}
// Note: 14, 17, 21, 22, 29 == nothing for avatar
case Animation::fallBackwards:
- return 18;
+ return Animation::fallBackwardsCru;
case Animation::die:
- return 18; // by default fall over backwards. TODO: randomly use 20 for some deaths - fall forwards.
+ return Animation::fallBackwardsCru; // by default fall over backwards. TODO: randomly use Animation::fallForwardsCru for some deaths.
case Animation::advance:
- return (smallwpn ? 36 : 44);
- case Animation::startKneeling:
- return 40;
+ return (smallwpn ? Animation::advanceSmallWeapon : Animation::advanceLargeWeapon);
+ // Kneel start/end never used in code - mover process uses correct ones.
+ /*case Animation::startKneeling:
+ return Animation::kneelStartCru;
case Animation::stopKneeling:
- return 41;
+ return Animation::kneelEndCru;*/
case Animation::kneel:
- return (smallwpn ? 46 : 47);
+ return (smallwpn ? Animation::kneelingWithSmallWeapon : Animation::kneelingWithLargeWeapon);
case Animation::kneelAndFire: {
if (smallwpn)
- return 42;
- return (altfire ? 50 : 43);
+ return Animation::kneelAndFireSmallWeapon;
+ return (altfire ? Animation::brightKneelAndFireLargeWeapon : Animation::kneelAndFireLargeWeapon);
}
case Animation::lookLeft:
return 0;
case Animation::lookRight:
return 0;
case Animation::jump:
- return 58; // 58 is a shorter jump?
- case Animation::startRunWithLargeWeapon:
- return (smallwpn ? 34 : 35);
+ return Animation::quickJumpCru;
+ case Animation::startRunLargeWeapon:
+ return (smallwpn ? Animation::startRunSmallWeapon : Animation::startRunLargeWeapon2);
+ case Animation::stopRunningAndDrawSmallWeapon:
+ return (smallwpn ? Animation::stopRunningAndDrawSmallWeapon : Animation::stopRunningAndDrawLargeWeapon);
default:
return action_int;
}
diff --git a/engines/ultima/ultima8/world/actors/actor.cpp b/engines/ultima/ultima8/world/actors/actor.cpp
index e6d544ac28..30924a6933 100644
--- a/engines/ultima/ultima8/world/actors/actor.cpp
+++ b/engines/ultima/ultima8/world/actors/actor.cpp
@@ -479,23 +479,24 @@ uint16 Actor::doAnim(Animation::Sequence anim, Direction dir, unsigned int steps
if (animDirMode(anim) == dirmode_8dirs)
dir = static_cast<Direction>(dir - (static_cast<uint32>(dir) % 2));
- if (anim == Animation::readyWeapon || anim == Animation::stopRunningAndDrawWeapon ||
+ if (anim == Animation::readyWeapon || anim == Animation::stopRunningAndDrawSmallWeapon ||
anim == Animation::combatStand || anim == Animation::attack || anim == Animation::kneel ||
anim == Animation::kneelAndFire)
setActorFlag(ACT_WEAPONREADY);
else
clearActorFlag(ACT_WEAPONREADY);
- if (anim == Animation::startKneeling || anim == Animation::kneelAndFire ||
+ if (anim == Animation::kneelStartCru || anim == Animation::kneelAndFire ||
anim == Animation::kneelAndFireSmallWeapon ||
anim == Animation::kneelAndFireLargeWeapon ||
- anim == Animation::kneel)
+ anim == Animation::kneelingAdvance ||
+ anim == Animation::kneelingRetreat)
setActorFlag(ACT_KNEELING);
else
clearActorFlag(ACT_KNEELING);
}
-#if 0
+#if 1
if (_objId == 1) {
int32 x, y, z;
getLocation(x, y, z);
@@ -942,7 +943,7 @@ void Actor::receiveHitCru(uint16 other, Direction dir, int damage, uint16 damage
void Actor::tookHitCru() {
Animation::Sequence lastanim = getLastAnim();
- if (lastanim == Animation::unknownAnim30 || lastanim == Animation::startRunWithLargeWeapon) {
+ if (lastanim == Animation::unknownAnim30 || lastanim == Animation::startRunLargeWeapon) {
//uint16 controllednpc = World::get_instance()->getControlledNPCNum();
bool canseecontrolled = true; //this->canSee(controllednpc);
if (canseecontrolled) {
diff --git a/engines/ultima/ultima8/world/actors/actor_anim_process.cpp b/engines/ultima/ultima8/world/actors/actor_anim_process.cpp
index c83077c914..70d664a1f5 100644
--- a/engines/ultima/ultima8/world/actors/actor_anim_process.cpp
+++ b/engines/ultima/ultima8/world/actors/actor_anim_process.cpp
@@ -115,7 +115,7 @@ bool ActorAnimProcess::init() {
if (_itemNum == watchactor)
pout << "Animation [" << Kernel::get_instance()->getFrameNum()
<< "] ActorAnimProcess " << getPid() << " created ("
- << _action << "," << _dir << ") _steps " << _steps << Std::endl;
+ << _action << "," << _dir << ") steps " << _steps << Std::endl;
#endif
return true;
diff --git a/engines/ultima/ultima8/world/actors/animation.cpp b/engines/ultima/ultima8/world/actors/animation.cpp
index 44e053dfd1..fa5572ce0b 100644
--- a/engines/ultima/ultima8/world/actors/animation.cpp
+++ b/engines/ultima/ultima8/world/actors/animation.cpp
@@ -60,18 +60,18 @@ bool isCombatAnimCru(const Sequence anim) {
case attack:
case kick:
case kneel:
- case startKneeling:
- case stopKneeling:
+ case kneelStartCru:
+ case kneelEndCru:
case kneelAndFire:
- case fire2:
+ case brightFireLargeWpn:
case combatRollLeft:
case combatRollRight:
case slideLeft:
case slideRight:
case startRun:
- case startRunWithLargeWeapon:
+ case startRunLargeWeapon:
case run:
- case stopRunningAndDrawWeapon:
+ case stopRunningAndDrawSmallWeapon:
return true;
default:
return false;
diff --git a/engines/ultima/ultima8/world/actors/animation.h b/engines/ultima/ultima8/world/actors/animation.h
index dea6764120..741830c0c3 100644
--- a/engines/ultima/ultima8/world/actors/animation.h
+++ b/engines/ultima/ultima8/world/actors/animation.h
@@ -94,43 +94,57 @@ enum Sequence {
//61: unused in u8
//62: unused in u8
//63: unused in u8
- // Some crusader-specific animations (some use the same IDs as above)
- reload = 15,
+
+ // All belowa are crusader-specific animations (some use the same IDs as above)
+ standCru = 0,
+ walkCru = 1,
+ retreatSmallWeapon = 2,
+ runCru = 3,
+ combatStandSmallWeapon = 4,
+ readySmallWeapon = 7,
+ fireSmallWeapon = 8,
+ unreadySmallWeapon = 11,
+ readyLargeWeapon = 12,
+ fireLargeWeapon = 13,
+ reload = 14,
+ unreadyLargeWeapon = 16,
+ fallBackwardsCru = 18,
+ fallForwardsCru = 20,
combatRollLeft = 23,
combatRollRight = 24,
- walkWithGun = 25,
+ stopRunningAndDrawLargeWeapon = 25,
kneelAndFire = 26,
slideLeft = 28,
slideRight = 29,
unknownAnim30 = 30,
- startRunWithLargeWeapon = 31,
+ startRunLargeWeapon = 31,
teleportIn = 32,
teleportOut = 33,
- startRunWithSmallWeapon = 34,
- startRunWithLargeWeapon2 = 35,
- advanceWithSmallWeapon = 36,
- halfStep = 37,
+ startRunSmallWeapon = 34,
+ startRunLargeWeapon2 = 35,
+ advanceSmallWeapon = 36,
+ combatStandLargeWeapon = 37,
startRun = 38,
- stopRunningAndDrawWeapon = 39,
+ stopRunningAndDrawSmallWeapon = 39,
kneelStartCru = 40,
kneelEndCru = 41,
kneelAndFireSmallWeapon = 42,
kneelAndFireLargeWeapon = 43,
- advanceWithLargeWeapon = 44,
- quickRetreat = 45,
+ advanceLargeWeapon = 44,
+ retreatLargeWeapon = 45,
kneelingWithSmallWeapon = 46,
kneelingWithLargeWeapon = 47,
- combatRun = 48,
- runWithLargeWeapon = 49,
- runWithLargeWeapon2 = 50,
+ combatRunSmallWeapon = 48,
+ combatRunLargeWeapon = 49,
+ brightKneelAndFireLargeWeapon = 50,
kneelingRetreat = 51,
kneelingAdvance = 52,
kneelingSlowRetreat = 53,
- fire2 = 54,
+ brightFireLargeWpn = 54,
electrocuted = 55,
jumpForward = 56,
surrender = 57,
- anotherJump = 58,
+ quickJumpCru = 58,
jumpLanding = 59,
surrenderStand = 60,
slowCombatRollLeft = 61,
diff --git a/engines/ultima/ultima8/world/actors/cru_avatar_mover_process.cpp b/engines/ultima/ultima8/world/actors/cru_avatar_mover_process.cpp
index de378b5139..fc195f2f91 100644
--- a/engines/ultima/ultima8/world/actors/cru_avatar_mover_process.cpp
+++ b/engines/ultima/ultima8/world/actors/cru_avatar_mover_process.cpp
@@ -47,7 +47,7 @@ void CruAvatarMoverProcess::run() {
// Even when we are not doing anything (because we're waiting for an anim)
// we check if the combat angle needs updating - this keeps it smooth.
- const MainActor *avatar = getMainActor();
+ const Actor *avatar = getControlledActor();
assert(avatar);
// When not in combat the angle is kept as -1
@@ -89,8 +89,19 @@ void CruAvatarMoverProcess::handleHangingMode() {
assert(false);
}
+static bool _isAnimRunningJumping(Animation::Sequence anim) {
+ return (anim == Animation::run || anim == Animation::combatRunSmallWeapon ||
+ anim == Animation::combatRunLargeWeapon || anim == Animation::jumpForward);
+}
+
+static bool _isAnimStartRunning(Animation::Sequence anim) {
+ return (anim == Animation::startRun || anim == Animation::startRunSmallWeapon ||
+ anim == Animation::startRunLargeWeapon);
+}
+
void CruAvatarMoverProcess::handleCombatMode() {
- MainActor *avatar = getMainActor();
+ Actor *avatar = getControlledActor();
+ MainActor *mainactor = dynamic_cast<MainActor *>(avatar);
const Animation::Sequence lastanim = avatar->getLastAnim();
Direction direction = (_avatarAngle >= 0 ? Direction_FromCentidegrees(_avatarAngle) : avatar->getDir());
const Direction curdir = avatar->getDir();
@@ -99,36 +110,35 @@ void CruAvatarMoverProcess::handleCombatMode() {
// never idle when in combat
_idleTime = 0;
- // If Avatar has fallen down, stand up
- if (standUpIfNeeded(direction)) {
- return;
- } else if (stasis) {
+ if (stasis)
return;
- } else if (hasMovementFlags(MOVE_FORWARD)) {
+
+ if (hasMovementFlags(MOVE_FORWARD)) {
Animation::Sequence nextanim;
if (hasMovementFlags(MOVE_STEP)) {
nextanim = avatar->isKneeling() ?
Animation::kneelingAdvance : Animation::advance;
} else if (hasMovementFlags(MOVE_RUN)) {
// Take a step before running
- if (lastanim != Animation::startRunWithLargeWeapon && lastanim != Animation::run)
- nextanim = Animation::startRunWithLargeWeapon;
+ if (lastanim == Animation::walk || _isAnimRunningJumping(lastanim) || _isAnimStartRunning(lastanim))
+ nextanim = Animation::combatRunSmallWeapon;
else
- nextanim = Animation::run;
+ nextanim = Animation::startRunSmallWeapon;
} else if (hasMovementFlags(MOVE_JUMP)) {
- if (lastanim == Animation::walk || lastanim == Animation::run)
+ if (lastanim == Animation::walk || lastanim == Animation::run || lastanim == Animation::combatRunSmallWeapon)
nextanim = Animation::jumpForward;
else
nextanim = Animation::jump;
// Jump always ends out of combat
avatar->clearInCombat();
} else if (avatar->isKneeling()) {
- nextanim = Animation::stopKneeling;
+ nextanim = Animation::kneelEndCru;
avatar->clearActorFlag(Actor::ACT_KNEELING);
} else {
// moving forward from combat stows weapon
nextanim = Animation::walk;
- avatar->toggleInCombat();
+ if (mainactor)
+ mainactor->toggleInCombat();
}
// don't check weapon here, Avatar can go straight from drawn-weapon to
@@ -139,7 +149,7 @@ void CruAvatarMoverProcess::handleCombatMode() {
Animation::Sequence nextanim;
if (hasMovementFlags(MOVE_JUMP)) {
if (!avatar->isKneeling()) {
- nextanim = Animation::startKneeling;
+ nextanim = Animation::kneelStartCru;
avatar->setActorFlag(Actor::ACT_KNEELING);
} else {
// Do nothing if already kneeling
@@ -152,7 +162,7 @@ void CruAvatarMoverProcess::handleCombatMode() {
return;
} else if (hasMovementFlags(MOVE_STEP)) {
if (avatar->isKneeling()) {
- avatar->doAnim(Animation::stopKneeling, direction);
+ avatar->doAnim(Animation::kneelEndCru, direction);
return;
} else {
if (hasMovementFlags(MOVE_TURN_LEFT)) {
@@ -188,18 +198,16 @@ void CruAvatarMoverProcess::handleCombatMode() {
return;
Animation::Sequence nextanim = Animation::combatStand;
- if (lastanim == Animation::run && !hasMovementFlags(MOVE_RUN)) {
- // want to go back to combat mode from run
- nextanim = Animation::stopRunningAndDrawWeapon;
+ if ((lastanim == Animation::run || lastanim == Animation::combatRunSmallWeapon) && !hasMovementFlags(MOVE_RUN)) {
+ // want to go back to combat mode from run
+ nextanim = Animation::stopRunningAndDrawSmallWeapon;
} else if (hasMovementFlags(MOVE_BACK)) {
nextanim = Animation::retreat;
nextdir = Direction_Invert(direction);
}
if (hasMovementFlags(MOVE_RUN)) {
- // Take a step before running. Don't clear combat mode in Cruasder
- // - running always finishes with drawing weapon
- nextanim = Animation::run;
+ nextanim = Animation::combatRunSmallWeapon;
}
nextanim = Animation::checkWeapon(nextanim, lastanim);
@@ -218,6 +226,10 @@ void CruAvatarMoverProcess::handleCombatMode() {
return;
}
+ if (_isAnimRunningJumping(lastanim) || _isAnimStartRunning(idleanim)) {
+ idleanim = Animation::stopRunningAndDrawSmallWeapon;
+ }
+
// not doing anything in particular? stand
if (lastanim != idleanim) {
Animation::Sequence nextanim = Animation::checkWeapon(idleanim, lastanim);
@@ -226,7 +238,8 @@ void CruAvatarMoverProcess::handleCombatMode() {
}
void CruAvatarMoverProcess::handleNormalMode() {
- MainActor *avatar = getMainActor();
+ Actor *avatar = getControlledActor();
+ MainActor *mainactor = dynamic_cast<MainActor *>(avatar);
const Animation::Sequence lastanim = avatar->getLastAnim();
Direction direction = avatar->getDir();
const bool stasis = Ultima8Engine::get_instance()->isAvatarInStasis();
@@ -246,17 +259,14 @@ void CruAvatarMoverProcess::handleNormalMode() {
// User toggled combat while in combatRun
if (avatar->isInCombat()) {
avatar->clearActorFlag(Actor::ACT_COMBATRUN);
- avatar->toggleInCombat();
+ if (mainactor)
+ mainactor->toggleInCombat();
}
- // If Avatar has fallen down and not dead, get up!
- if (standUpIfNeeded(direction))
- return;
-
if (!hasMovementFlags(MOVE_ANY_DIRECTION) && lastanim == Animation::run) {
// if we were running, slow to a walk before stopping
// (even in stasis)
- waitFor(avatar->doAnim(Animation::stopRunningAndDrawWeapon, direction));
+ waitFor(avatar->doAnim(Animation::stopRunningAndDrawSmallWeapon, direction));
avatar->setInCombat(0);
avatar->clearActorFlag(Actor::ACT_COMBATRUN);
return;
@@ -280,7 +290,8 @@ void CruAvatarMoverProcess::handleNormalMode() {
if (hasMovementFlags(MOVE_RUN)) {
if (lastanim == Animation::run
|| lastanim == Animation::startRun
- || lastanim == Animation::startRunWithLargeWeapon
+ || lastanim == Animation::startRunSmallWeapon
+ || lastanim == Animation::combatRunSmallWeapon
|| lastanim == Animation::walk) {
// keep running
nextanim = Animation::run;
@@ -298,7 +309,8 @@ void CruAvatarMoverProcess::handleNormalMode() {
}
if (hasMovementFlags(MOVE_BACK)) {
- avatar->toggleInCombat();
+ if (mainactor)
+ mainactor->toggleInCombat();
step(Animation::retreat, direction);
return;
}
@@ -331,9 +343,12 @@ void CruAvatarMoverProcess::handleNormalMode() {
void CruAvatarMoverProcess::step(Animation::Sequence action, Direction direction,
bool adjusted) {
- MainActor *avatar = getMainActor();
+ Actor *avatar = getControlledActor();
+
+ // For "start run" animations, don't call it a success unless we can actually run
+ Animation::Sequence testaction = _isAnimStartRunning(action) ? Animation::run : action;
- Animation::Result res = avatar->tryAnim(action, direction);
+ Animation::Result res = avatar->tryAnim(testaction, direction);
Animation::Result initialres = res;
if (res != Animation::SUCCESS) {
@@ -360,7 +375,7 @@ void CruAvatarMoverProcess::step(Animation::Sequence action, Direction direction
if (currentmap->isValidPosition(x, y, z, avatar->getShape(), avatar->getObjId(),
nullptr, nullptr, &blocker)) {
avatar->setLocation(x, y, z);
- res = avatar->tryAnim(action, direction);
+ res = avatar->tryAnim(testaction, direction);
if (res == Animation::SUCCESS) {
// move to starting point for real (trigger fast area updates etc)
avatar->setLocation(origpt.x, origpt.y, origpt.z);
@@ -378,13 +393,17 @@ void CruAvatarMoverProcess::step(Animation::Sequence action, Direction direction
}
}
- if ((action == Animation::step || action == Animation::advance ||
- action == Animation::retreat || action == Animation::run ||
- action == Animation::startRunWithLargeWeapon ||
+ if ((action == Animation::step || action == Animation::run ||
action == Animation::startRun || action == Animation::walk)
&& res == Animation::FAILURE) {
action = Animation::stand;
}
+ else if ((action == Animation::advance || action == Animation::retreat ||
+ action == Animation::combatRunSmallWeapon ||
+ action == Animation::startRunSmallWeapon)
+ && res == Animation::FAILURE) {
+ action = Animation::combatStand;
+ }
bool moving = (action == Animation::run || action == Animation::walk);
@@ -396,7 +415,7 @@ void CruAvatarMoverProcess::step(Animation::Sequence action, Direction direction
}
void CruAvatarMoverProcess::tryAttack() {
- MainActor *avatar = getMainActor();
+ Actor *avatar = getControlledActor();
Direction dir = avatar->getDir();
if (!avatar->isInCombat()) {
avatar->setInCombat(0);
diff --git a/engines/ultima/ultima8/world/gravity_process.cpp b/engines/ultima/ultima8/world/gravity_process.cpp
index 8401a3b45d..e7c71053e2 100644
--- a/engines/ultima/ultima8/world/gravity_process.cpp
+++ b/engines/ultima/ultima8/world/gravity_process.cpp
@@ -349,7 +349,7 @@ void GravityProcess::actorFallStoppedCru(Actor *actor, int height) {
Kernel *kernel = Kernel::get_instance();
if (height / 8 > 2 &&
- (lastanim != Animation::anotherJump &&
+ (lastanim != Animation::quickJumpCru &&
lastanim != Animation::slowCombatRollLeft &&
lastanim != Animation::slowCombatRollRight &&
lastanim != Animation::combatRollLeft &&
@@ -357,7 +357,7 @@ void GravityProcess::actorFallStoppedCru(Actor *actor, int height) {
lastanim != Animation::run &&
lastanim != Animation::jumpForward &&
lastanim != Animation::unknownAnim30 &&
- lastanim != Animation::runWithLargeWeapon)) {
+ lastanim != Animation::brightKneelAndFireLargeWeapon)) {
// play land animation, overriding other animations
kernel->killProcesses(_itemNum, ActorAnimProcess::ACTOR_ANIM_PROC_TYPE, false); // CONSTANT!
ProcId lpid = actor->doAnim(Animation::jumpLanding, dir_current);
diff --git a/engines/ultima/ultima8/world/item.cpp b/engines/ultima/ultima8/world/item.cpp
index bcf68dd903..56bb6fb5e9 100644
--- a/engines/ultima/ultima8/world/item.cpp
+++ b/engines/ultima/ultima8/world/item.cpp
@@ -1327,11 +1327,11 @@ uint16 Item::fireDistance(Item *other, Direction dir, int16 xoff, int16 yoff, in
else
anim = Animation::kneelAndFireLargeWeapon;
} else {
- // TODO: fire2 seems to be different in Regret, check me.
+ // TODO: fireLarge seems to be different ID in Regret, check me.
if (ma || smallwpn)
- anim = Animation::attack;
+ anim = Animation::fireSmallWeapon;
else
- anim = Animation::fire2;
+ anim = Animation::fireLargeWeapon;
}
bool first_offsets = false;
More information about the Scummvm-git-logs
mailing list