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:
|
case mobj_sprite:
|
||||||
{
|
{
|
||||||
spritenum_t newsprite = luaL_checkinteger(L, 3);
|
spritenum_t newsprite = luaL_checkinteger(L, 3);
|
||||||
if (lua_compatmode && mo->sprite != SPR_PLAY && newsprite == SPR_PLAY)
|
if (lua_compatmode)
|
||||||
{
|
{
|
||||||
UINT8 outframe;
|
if (mo->sprite != SPR_PLAY && newsprite == SPR_PLAY) // switch to spr2
|
||||||
mo->sprite2 = P_KartFrameToSprite2(mo->skin, mo->frame, &outframe);
|
{
|
||||||
mo->frame = (mo->frame & ~FF_FRAMEMASK) | outframe;
|
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;
|
mo->sprite = newsprite;
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -118,21 +118,27 @@ UINT8 P_KartFrameToSprite2(skin_t *skin, UINT8 inframe, UINT8 *outframe)
|
||||||
break;
|
break;
|
||||||
F('G')
|
F('G')
|
||||||
spr2 = SPR2_SLWN;
|
spr2 = SPR2_SLWN;
|
||||||
|
frame = 1;
|
||||||
break;
|
break;
|
||||||
F('H')
|
F('H')
|
||||||
spr2 = SPR2_SLWL;
|
spr2 = SPR2_SLWL;
|
||||||
|
frame = 1;
|
||||||
break;
|
break;
|
||||||
F('I')
|
F('I')
|
||||||
spr2 = SPR2_SLWR;
|
spr2 = SPR2_SLWR;
|
||||||
|
frame = 1;
|
||||||
break;
|
break;
|
||||||
F('J')
|
F('J')
|
||||||
spr2 = SPR2_FSTN;
|
spr2 = SPR2_FSTN;
|
||||||
|
frame = 1;
|
||||||
break;
|
break;
|
||||||
F('K')
|
F('K')
|
||||||
spr2 = SPR2_FSTL;
|
spr2 = SPR2_FSTL;
|
||||||
|
frame = 1;
|
||||||
break;
|
break;
|
||||||
F('L')
|
F('L')
|
||||||
spr2 = SPR2_FSTR;
|
spr2 = SPR2_FSTR;
|
||||||
|
frame = 1;
|
||||||
break;
|
break;
|
||||||
F('M') F('N')
|
F('M') F('N')
|
||||||
spr2 = SPR2_DRLN;
|
spr2 = SPR2_DRLN;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue