]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_video.c
fix a warning
[xonotic/darkplaces.git] / cl_video.c
index 1328322de77b386bfd5d1156e74c038a70b07f15..f97bb0a365c373089e153b6c18c44992b89eb32d 100644 (file)
@@ -96,11 +96,30 @@ static qboolean WakeVideo( clvideo_t * video )
 
 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 );
@@ -139,7 +158,7 @@ static void LoadSubtitles( clvideo_t *video, const char *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]);
                }
@@ -151,7 +170,7 @@ static void LoadSubtitles( clvideo_t *video, const char *subtitlesfile )
                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;
@@ -467,7 +486,7 @@ void CL_DrawVideo(void)
                        // 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;