Fix MK64 chars displaying incorrect sprite frames
This commit is contained in:
parent
7620420c95
commit
3ac73cf9c7
2 changed files with 17 additions and 4 deletions
|
|
@ -676,11 +676,18 @@ static int mobj_set(lua_State *L)
|
|||
case mobj_sprite:
|
||||
{
|
||||
spritenum_t newsprite = luaL_checkinteger(L, 3);
|
||||
if (lua_compatmode && mo->sprite != SPR_PLAY && newsprite == SPR_PLAY)
|
||||
if (lua_compatmode)
|
||||
{
|
||||
UINT8 outframe;
|
||||
mo->sprite2 = P_KartFrameToSprite2(mo->skin, mo->frame, &outframe);
|
||||
mo->frame = (mo->frame & ~FF_FRAMEMASK) | outframe;
|
||||
if (mo->sprite != SPR_PLAY && newsprite == SPR_PLAY) // switch to spr2
|
||||
{
|
||||
UINT8 outframe;
|
||||
mo->sprite2 = P_KartFrameToSprite2(mo->skin, mo->frame, &outframe);
|
||||
mo->frame = (mo->frame & ~FF_FRAMEMASK) | outframe;
|
||||
}
|
||||
else if (mo->sprite == SPR_PLAY && newsprite != SPR_PLAY) // switch from spr2
|
||||
{
|
||||
mo->frame = spr2frame(mo->sprite2, mo->frame);
|
||||
}
|
||||
}
|
||||
mo->sprite = newsprite;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -118,21 +118,27 @@ UINT8 P_KartFrameToSprite2(skin_t *skin, UINT8 inframe, UINT8 *outframe)
|
|||
break;
|
||||
F('G')
|
||||
spr2 = SPR2_SLWN;
|
||||
frame = 1;
|
||||
break;
|
||||
F('H')
|
||||
spr2 = SPR2_SLWL;
|
||||
frame = 1;
|
||||
break;
|
||||
F('I')
|
||||
spr2 = SPR2_SLWR;
|
||||
frame = 1;
|
||||
break;
|
||||
F('J')
|
||||
spr2 = SPR2_FSTN;
|
||||
frame = 1;
|
||||
break;
|
||||
F('K')
|
||||
spr2 = SPR2_FSTL;
|
||||
frame = 1;
|
||||
break;
|
||||
F('L')
|
||||
spr2 = SPR2_FSTR;
|
||||
frame = 1;
|
||||
break;
|
||||
F('M') F('N')
|
||||
spr2 = SPR2_DRLN;
|
||||
|
|
|
|||
Loading…
Reference in a new issue