[FIX] [#7] Es pot botar damunt de les peces a arreplegar
This commit is contained in:
@@ -643,34 +643,7 @@ namespace actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t push(actor_t *source, actor_t *act, uint8_t push)
|
uint8_t PickSpecial(actor_t *act, uint8_t result = 0)
|
||||||
{
|
|
||||||
uint8_t result = 0;
|
|
||||||
if ((act->flags & FLAG_PUSHABLE) && (!(source->flags & FLAG_HERO) || (hero::getSkills() & SKILL_GLOVES) || (push == PUSH_ZN)))
|
|
||||||
act->push |= push;
|
|
||||||
if ((act->flags & FLAG_REACTIVE) && (act->react_mask & push))
|
|
||||||
{
|
|
||||||
if (act->flags & FLAG_DEADLY)
|
|
||||||
source->push |= PUSH_KILL;
|
|
||||||
else
|
|
||||||
result = act->react_push;
|
|
||||||
}
|
|
||||||
if ((source->flags & FLAG_HERO) && (act->flags & FLAG_DISAPPEAR))
|
|
||||||
{
|
|
||||||
audio::playSound("snd_disappear.wav", SOUND_BASIC);
|
|
||||||
act = actor::replaceWithTemplate(act, "EXPLOSION");
|
|
||||||
act->name[0] = '_';
|
|
||||||
return PUSH_NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (source->flags & FLAG_DEADLY)
|
|
||||||
{
|
|
||||||
act->push |= PUSH_KILL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (source->flags & FLAG_HERO)
|
|
||||||
{
|
|
||||||
if (act->flags & FLAG_SPECIAL)
|
|
||||||
{
|
{
|
||||||
if (act->name[0] == 'B')
|
if (act->name[0] == 'B')
|
||||||
{ // Es un booster
|
{ // Es un booster
|
||||||
@@ -739,6 +712,38 @@ namespace actor
|
|||||||
room::cycleColor(1);
|
room::cycleColor(1);
|
||||||
return PUSH_NONE;
|
return PUSH_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t push(actor_t *source, actor_t *act, uint8_t push)
|
||||||
|
{
|
||||||
|
uint8_t result = 0;
|
||||||
|
if ((act->flags & FLAG_PUSHABLE) && (!(source->flags & FLAG_HERO) || (hero::getSkills() & SKILL_GLOVES) || (push == PUSH_ZN)))
|
||||||
|
act->push |= push;
|
||||||
|
if ((act->flags & FLAG_REACTIVE) && (act->react_mask & push))
|
||||||
|
{
|
||||||
|
if (act->flags & FLAG_DEADLY)
|
||||||
|
source->push |= PUSH_KILL;
|
||||||
|
else
|
||||||
|
result = act->react_push;
|
||||||
|
}
|
||||||
|
if ((source->flags & FLAG_HERO) && (act->flags & FLAG_DISAPPEAR))
|
||||||
|
{
|
||||||
|
audio::playSound("snd_disappear.wav", SOUND_BASIC);
|
||||||
|
act = actor::replaceWithTemplate(act, "EXPLOSION");
|
||||||
|
act->name[0] = '_';
|
||||||
|
return PUSH_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (source->flags & FLAG_DEADLY)
|
||||||
|
{
|
||||||
|
act->push |= PUSH_KILL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (source->flags & FLAG_HERO)
|
||||||
|
{
|
||||||
|
if (act->flags & FLAG_SPECIAL)
|
||||||
|
{
|
||||||
|
return PickSpecial(act, result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -923,6 +928,11 @@ namespace actor
|
|||||||
{
|
{
|
||||||
audio::pauseChannel(walk_channel);
|
audio::pauseChannel(walk_channel);
|
||||||
audio::playSound("snd_jump.wav", SOUND_BASIC);
|
audio::playSound("snd_jump.wav", SOUND_BASIC);
|
||||||
|
// [RZC 31/10/2024] Hack per a que al aterrar sobre els especials els pille
|
||||||
|
if (!act->below && future_below && future_below->flags & FLAG_SPECIAL)
|
||||||
|
{
|
||||||
|
act->push |= PickSpecial(future_below);
|
||||||
|
}
|
||||||
// [RZC 11/10/2024] Hack per a que al aterrar sobre els que maten, te maten
|
// [RZC 11/10/2024] Hack per a que al aterrar sobre els que maten, te maten
|
||||||
if (!act->below && future_below && future_below->flags & FLAG_DEADLY)
|
if (!act->below && future_below && future_below->flags & FLAG_DEADLY)
|
||||||
act->push |= PUSH_KILL;
|
act->push |= PUSH_KILL;
|
||||||
|
|||||||
Reference in New Issue
Block a user