Merge branch 'v2dev3' into ACS2

This commit is contained in:
NepDisk 2024-11-16 14:27:34 -05:00
commit 28d8f15bfc
5 changed files with 96 additions and 3 deletions

View file

@ -3158,7 +3158,7 @@ EXPORT void HWRAPI(SetTransform) (FTransform *stransform)
// https://zdoom.org/wiki/Y-shearing
if (shearing)
{
float fdy = stransform->viewaiming * 2;
float fdy = stransform->viewaiming * 2 * ((float)vid.width / vid.height) / ((float)BASEVIDWIDTH / BASEVIDHEIGHT); //screen_width/BASEVIDWIDTH;
if (stransform->flip)
fdy *= -1.0f;
pglTranslatef(0.0f, -fdy/BASEVIDHEIGHT, 0.0f);

View file

@ -560,9 +560,65 @@ static int mobj_set(lua_State *L)
break;
case mobj_sprite:
mo->sprite = luaL_checkinteger(L, 3);
if (mo->sprite == SPR_PLAY)
mo->sprite2 = P_GetSkinSprite2(((skin_t *)mo->skin), SPR2_STIN, mo->player);
break;
case mobj_frame:
mo->frame = (UINT32)luaL_checkinteger(L, 3);
// Check for SPR2
if (mo->sprite == SPR_PLAY)
{
UINT32 frame = (UINT32)luaL_checkinteger(L, 3);
switch (frame)
{
case 0:
case 1:
mo->sprite2 = P_GetSkinSprite2(((skin_t *)mo->skin), SPR2_STIN, mo->player);
break;
case 2:
case 3:
mo->sprite2 = P_GetSkinSprite2(((skin_t *)mo->skin), SPR2_STIL, mo->player);
break;
case 4:
case 5:
mo->sprite2 = P_GetSkinSprite2(((skin_t *)mo->skin), SPR2_STIR, mo->player);
break;
case 6:
mo->sprite2 = P_GetSkinSprite2(((skin_t *)mo->skin), SPR2_SLWN, mo->player);
break;
case 7:
mo->sprite2 = P_GetSkinSprite2(((skin_t *)mo->skin), SPR2_SLWL, mo->player);
break;
case 8:
mo->sprite2 = P_GetSkinSprite2(((skin_t *)mo->skin), SPR2_SLWR, mo->player);
break;
case 9:
mo->sprite2 = P_GetSkinSprite2(((skin_t *)mo->skin), SPR2_FSTN, mo->player);
break;
case 10:
mo->sprite2 = P_GetSkinSprite2(((skin_t *)mo->skin), SPR2_FSTL, mo->player);
break;
case 11:
mo->sprite2 = P_GetSkinSprite2(((skin_t *)mo->skin), SPR2_FSTR, mo->player);
break;
case 12:
case 13:
mo->sprite2 = P_GetSkinSprite2(((skin_t *)mo->skin), SPR2_DRLN, mo->player);
break;
case 14:
case 15:
mo->sprite2 = P_GetSkinSprite2(((skin_t *)mo->skin), SPR2_DRRN, mo->player);
break;
case 16:
case 17: // squish technically doesnt really exist
mo->sprite2 = P_GetSkinSprite2(((skin_t *)mo->skin), SPR2_SPIN, mo->player);
break;
case 18:
mo->sprite2 = P_GetSkinSprite2(((skin_t *)mo->skin), SPR2_SIGN, mo->player);
break;
}
}
else
mo->frame = (UINT32)luaL_checkinteger(L, 3);
break;
case mobj_sprite2:
mo->sprite2 = P_GetSkinSprite2(((skin_t *)mo->skin), (UINT8)luaL_checkinteger(L, 3), mo->player);

View file

@ -3011,7 +3011,10 @@ boolean P_ProcessSpecial(activator_t *activator, INT16 special, INT32 *args, cha
case 423: // Change Sky
if ((mo && mo->player && P_IsLocalPlayer(mo->player)) || args[1])
P_SetupLevelSky(stringargs[0], args[1]);
if (udmf)
P_SetupLevelSky(stringargs[0], args[1]);
else
P_SetupLevelSky(va("SKY%d", args[0]), args[1]);
break;
case 424: // Change Weather

View file

@ -1464,6 +1464,7 @@ ReadMusicDefFields
def->numtracks = i;
def->volume = DEFAULT_MUSICDEF_VOLUME;
def->legacy = true;
def->next = musicdefstart;
musicdefstart = def;
@ -1511,11 +1512,13 @@ ReadMusicDefFields
{
Z_Free(def->title);
def->title = Z_StrDup(textline);
def->legacy = false;
}
else if (!stricmp(stoken, "author"))
{
Z_Free(def->author);
def->author = Z_StrDup(textline);
def->legacy = false;
}
else if (!stricmp(stoken, "source"))
{
@ -1526,15 +1529,22 @@ ReadMusicDefFields
{
Z_Free(def->composers);
def->composers = Z_StrDup(textline);
def->legacy = false;
}
else if (!stricmp(stoken, "volume"))
{
def->volume = atoi(textline);
def->legacy = false;
}
else if (!stricmp(stoken, "contentidunsafe"))
{
textline[0] = toupper(textline[0]);
def->contentidunsafe = (textline[0] == 'Y' || textline[0] == 'T' || textline[0] == '1');
def->legacy = false;
}
else if (!stricmp(stoken, "usage"))
{
// This does absolutely nothing, just a way to ignore this
}
else
{
@ -1548,6 +1558,16 @@ ReadMusicDefFields
return true;
}
static char* replacechar(char* str, char find, char replace)
{
char *current_pos = strchr(str,find);
while (current_pos) {
*current_pos = replace;
current_pos = strchr(current_pos,find);
}
return str;
}
static void S_LoadMusicDefLump(lumpnum_t lumpnum)
{
char *lump;
@ -1611,6 +1631,19 @@ static void S_LoadMusicDefLump(lumpnum_t lumpnum)
else
break;/* EOF */
}
musicdef_t *df;
// Replace all _ with spaces on legacy musicdefs
for (df = musicdefstart; df; df = df->next)
{
if (df->legacy && df->source)
{
df->source = replacechar(df->source, '_', ' ');
df->title = Z_StrDup(df->source);
memset(df->source, 0, strlen(df->source));
df->source = NULL;
}
}
free(musdeftext);
}

View file

@ -186,6 +186,7 @@ struct musicdef_t
char *composers;
int volume;
boolean contentidunsafe;
boolean legacy;
musicdef_t *next;
};