hechelion
Member
Hi.
I think I found another bug.
according to the documentation
I create an enemy with the animations rise, riseattack, riseattack1 and a character with riseattacktype = 3, attack1 and attack4
If I take down the enemy with attack4, he executes a riseattack instead of a rise.
Looking at the source code I did not find any reference to riseattacktype == 3, a possible solution (At least for my game it works) is to add the following condition to the function "int set_riseattack(entity *iRiseattack, int type, int reset)" in openbor.c
I think I found another bug.
according to the documentation
riseattacktype {int}
~Determines how entity performs RISEATTACK while rising.
0 = Only RISEATTACK will be used. Other RISEATTACK animations (see Animation Types below) won't be used.
1 = RISEATTACK will be played based on received attacktype. For instance, if entity was knocked down with attack5, entity will perform RISEATTACK5 if it's executed. If required animations aren't available, RISEATTACK will be played instead.
3 = Like 1 but if required animations aren't available, RISE will be played instead (no riseattack).
I create an enemy with the animations rise, riseattack, riseattack1 and a character with riseattacktype = 3, attack1 and attack4
If I take down the enemy with attack4, he executes a riseattack instead of a rise.
Looking at the source code I did not find any reference to riseattacktype == 3, a possible solution (At least for my game it works) is to add the following condition to the function "int set_riseattack(entity *iRiseattack, int type, int reset)" in openbor.c
Code:
if( (!validanim(iRiseattack, animriseattacks[type]) ||
(iRiseattack->inbackpain && !validanim(iRiseattack, animbackriseattacks[type]) && !validanim(iRiseattack, animriseattacks[type]))) &&
iRiseattack->modeldata.riseattacktype == 3 )
{
return 0;
}