static void LoadSubtitles( clvideo_t *video, const char *subtitlesfile )
{
- char *subtitle_text, *data;
+ char *subtitle_text;
+ const char *data;
float subtime, sublen;
int numsubs = 0;
- subtitle_text = (char *)FS_LoadFile(subtitlesfile, cls.permanentmempool, false, NULL);
+ if (gamemode == GAME_BLOODOMNICIDE)
+ {
+ char overridename[MAX_QPATH];
+ cvar_t *langcvar;
+
+ langcvar = Cvar_FindVar("language");
+ subtitle_text = NULL;
+ if (langcvar)
+ {
+ dpsnprintf(overridename, sizeof(overridename), "script/locale/%s/%s", langcvar->string, subtitlesfile);
+ subtitle_text = (char *)FS_LoadFile(overridename, cls.permanentmempool, false, NULL);
+ }
+ if (!subtitle_text)
+ subtitle_text = (char *)FS_LoadFile(subtitlesfile, cls.permanentmempool, false, NULL);
+ }
+ else
+ {
+ subtitle_text = (char *)FS_LoadFile(subtitlesfile, cls.permanentmempool, false, NULL);
+ }
if (!subtitle_text)
{
Con_DPrintf( "LoadSubtitles: can't open subtitle file '%s'!\n", subtitlesfile );
if (numsubs > 0) // make true len for prev sub, autofix overlapping subtitles
{
if (video->subtitle_end[numsubs-1] <= 0)
- video->subtitle_end[numsubs-1] = max(video->subtitle_start[numsubs-1], video->subtitle_start[numsubs] - video->subtitle_end[numsubs-1]);
+ video->subtitle_end[numsubs-1] = max(video->subtitle_start[numsubs-1], video->subtitle_start[numsubs] + video->subtitle_end[numsubs-1]);
else
video->subtitle_end[numsubs-1] = min(video->subtitle_start[numsubs-1] + video->subtitle_end[numsubs-1], video->subtitle_start[numsubs]);
}
if (video->subtitle_end[numsubs-1] <= 0)
video->subtitle_end[numsubs-1] = 99999999; // fixme: make it end when video ends?
else
- video->subtitle_end[numsubs-1] = min(video->subtitle_start[numsubs-1] + video->subtitle_end[numsubs-1], video->subtitle_start[numsubs]);
+ video->subtitle_end[numsubs-1] = video->subtitle_start[numsubs-1] + video->subtitle_end[numsubs-1];
}
Z_Free( subtitle_text );
video->subtitles = numsubs;
// found, draw it
si.font = FONT_NOTIFY;
si.x = vid_conwidth.integer * 0.1;
- si.y = vid_conheight.integer - (max(1, cl_video_subtitles_lines.integer) * cl_video_subtitles_textsize.value);
+ si.y = vid_conheight.integer - (max(1, cl_video_subtitles_lines.value) * cl_video_subtitles_textsize.value);
si.width = vid_conwidth.integer * 0.8;
si.height = max(1, cl_video_subtitles_lines.integer) * cl_video_subtitles_textsize.value;
si.alignment = 0.5;