Cleanup movie.h

See #42
This commit is contained in:
Alexander Batalov 2022-06-19 08:48:30 +03:00
parent 8ff5781b11
commit d57efd0037
2 changed files with 89 additions and 134 deletions

View File

@ -2,9 +2,11 @@
#include "color.h" #include "color.h"
#include "core.h" #include "core.h"
#include "db.h"
#include "debug.h" #include "debug.h"
#include "draw.h" #include "draw.h"
#include "game_config.h" #include "game_config.h"
#include "geometry.h"
#include "memory_manager.h" #include "memory_manager.h"
#include "movie_effect.h" #include "movie_effect.h"
#include "movie_lib.h" #include "movie_lib.h"
@ -15,155 +17,182 @@
#include <string.h> #include <string.h>
#include <SDL.h>
typedef struct MovieSubtitleListNode {
int num;
char* text;
struct MovieSubtitleListNode* next;
} MovieSubtitleListNode;
static void* movieMallocImpl(size_t size);
static void movieFreeImpl(void* ptr);
static bool movieReadImpl(int fileHandle, void* buf, int count);
static void movieDirectImpl(SDL_Surface* a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9);
static void movieBufferedImpl(SDL_Surface* a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9);
static int _movieScaleSubRectAlpha(int a1);
static int _blitAlpha(int win, unsigned char* a2, int a3, int a4, int a5);
static int _blitNormal(int win, int a2, int a3, int a4, int a5);
static void movieSetPaletteEntriesImpl(unsigned char* palette, int start, int end);
static int _noop();
static void _cleanupMovie(int a1);
static void _cleanupLast();
static File* movieOpen(char* filePath);
static void movieLoadSubtitles(char* filePath);
static void movieRenderSubtitles();
static int _movieStart(int win, char* filePath, int (*a3)());
static bool _localMovieCallback();
static int _stepMovie();
// 0x5195B8 // 0x5195B8
int gMovieWindow = -1; static int gMovieWindow = -1;
// 0x5195BC // 0x5195BC
int gMovieSubtitlesFont = -1; static int gMovieSubtitlesFont = -1;
// 0x5195E0 // 0x5195E0
MovieSetPaletteEntriesProc* gMovieSetPaletteEntriesProc = _setSystemPaletteEntries; static MovieSetPaletteEntriesProc* gMovieSetPaletteEntriesProc = _setSystemPaletteEntries;
// 0x5195E4 // 0x5195E4
int gMovieSubtitlesColorR = 31; static int gMovieSubtitlesColorR = 31;
// 0x5195E8 // 0x5195E8
int gMovieSubtitlesColorG = 31; static int gMovieSubtitlesColorG = 31;
// 0x5195EC // 0x5195EC
int gMovieSubtitlesColorB = 31; static int gMovieSubtitlesColorB = 31;
// 0x638E10 // 0x638E10
Rect gMovieWindowRect; static Rect gMovieWindowRect;
// 0x638E20 // 0x638E20
Rect _movieRect; static Rect _movieRect;
// 0x638E30 // 0x638E30
void (*_movieCallback)(); static void (*_movieCallback)();
// 0x638E38 // 0x638E38
MovieSetPaletteProc* gMoviePaletteProc; static MovieSetPaletteProc* gMoviePaletteProc;
// NOTE: Some kind of callback which was intended to change movie file path // NOTE: Some kind of callback which was intended to change movie file path
// in place during opening movie file to find subsitutions. This callback is // in place during opening movie file to find subsitutions. This callback is
// never set. // never set.
// //
// 0x638E3C // 0x638E3C
int (*_failedOpenFunc)(char* filePath); static int (*_failedOpenFunc)(char* filePath);
// 0x638E40 // 0x638E40
MovieBuildSubtitleFilePathProc* gMovieBuildSubtitleFilePathProc; static MovieBuildSubtitleFilePathProc* gMovieBuildSubtitleFilePathProc;
// 0x638E48 // 0x638E48
int _subtitleW; static int _subtitleW;
// 0x638E4C // 0x638E4C
int _lastMovieBH; static int _lastMovieBH;
// 0x638E50 // 0x638E50
int _lastMovieBW; static int _lastMovieBW;
// 0x638E54 // 0x638E54
int _lastMovieSX; static int _lastMovieSX;
// 0x638E58 // 0x638E58
int _lastMovieSY; static int _lastMovieSY;
// 0x638E5C // 0x638E5C
int _movieScaleFlag; static int _movieScaleFlag;
// 0x638E64 // 0x638E64
int _lastMovieH; static int _lastMovieH;
// 0x638E68 // 0x638E68
int _lastMovieW; static int _lastMovieW;
// 0x638E6C // 0x638E6C
int _lastMovieX; static int _lastMovieX;
// 0x638E70 // 0x638E70
int _lastMovieY; static int _lastMovieY;
// 0x638E74 // 0x638E74
MovieSubtitleListNode* gMovieSubtitleHead; static MovieSubtitleListNode* gMovieSubtitleHead;
// 0x638E78 // 0x638E78
unsigned int gMovieFlags; static unsigned int gMovieFlags;
// 0x638E7C // 0x638E7C
int _movieAlphaFlag; static int _movieAlphaFlag;
// 0x638E80 // 0x638E80
bool _movieSubRectFlag; static bool _movieSubRectFlag;
// 0x638E84 // 0x638E84
int _movieH; static int _movieH;
// 0x638E88 // 0x638E88
int _movieOffset; static int _movieOffset;
// 0x638E8C // 0x638E8C
void (*_movieCaptureFrameFunc)(void*, int, int, int, int, int); static void (*_movieCaptureFrameFunc)(void*, int, int, int, int, int);
// 0x638E90 // 0x638E90
unsigned char* _lastMovieBuffer; static unsigned char* _lastMovieBuffer;
// 0x638E94 // 0x638E94
int _movieW; static int _movieW;
// 0x638E98 // 0x638E98
void (*_movieFrameGrabFunc)(); static void (*_movieFrameGrabFunc)();
// 0x638EA0 // 0x638EA0
int _subtitleH; static int _subtitleH;
// 0x638EA4 // 0x638EA4
int _running; static int _running;
// 0x638EA8 // 0x638EA8
File* gMovieFileStream; static File* gMovieFileStream;
// 0x638EAC // 0x638EAC
unsigned char* _alphaWindowBuf; static unsigned char* _alphaWindowBuf;
// 0x638EB0 // 0x638EB0
int _movieX; static int _movieX;
// 0x638EB4 // 0x638EB4
int _movieY; static int _movieY;
// 0x638EB8 // 0x638EB8
bool gMovieDirectSoundInitialized; static bool gMovieDirectSoundInitialized;
// 0x638EBC // 0x638EBC
File* _alphaHandle; static File* _alphaHandle;
// 0x638EC0 // 0x638EC0
unsigned char* _alphaBuf; static unsigned char* _alphaBuf;
SDL_Surface* gMovieSdlSurface = NULL; static SDL_Surface* gMovieSdlSurface = NULL;
// 0x4865FC // 0x4865FC
void* movieMallocImpl(size_t size) static void* movieMallocImpl(size_t size)
{ {
return internal_malloc_safe(size, __FILE__, __LINE__); // "..\\int\\MOVIE.C", 209 return internal_malloc_safe(size, __FILE__, __LINE__); // "..\\int\\MOVIE.C", 209
} }
// 0x486614 // 0x486614
void movieFreeImpl(void* ptr) static void movieFreeImpl(void* ptr)
{ {
internal_free_safe(ptr, __FILE__, __LINE__); // "..\\int\\MOVIE.C", 213 internal_free_safe(ptr, __FILE__, __LINE__); // "..\\int\\MOVIE.C", 213
} }
// 0x48662C // 0x48662C
bool movieReadImpl(int fileHandle, void* buf, int count) static bool movieReadImpl(int fileHandle, void* buf, int count)
{ {
return fileRead(buf, 1, count, (File*)fileHandle) == count; return fileRead(buf, 1, count, (File*)fileHandle) == count;
} }
// 0x486654 // 0x486654
void movieDirectImpl(SDL_Surface* surface, int srcWidth, int srcHeight, int srcX, int srcY, int destWidth, int destHeight, int a8, int a9) static void movieDirectImpl(SDL_Surface* surface, int srcWidth, int srcHeight, int srcX, int srcY, int destWidth, int destHeight, int a8, int a9)
{ {
int v14; int v14;
int v15; int v15;
@ -236,7 +265,7 @@ void movieDirectImpl(SDL_Surface* surface, int srcWidth, int srcHeight, int srcX
} }
// 0x486900 // 0x486900
void movieBufferedImpl(SDL_Surface* a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9) static void movieBufferedImpl(SDL_Surface* a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9)
{ {
int v13; int v13;
@ -275,14 +304,14 @@ void movieBufferedImpl(SDL_Surface* a1, int a2, int a3, int a4, int a5, int a6,
} }
// 0x486C74 // 0x486C74
int _movieScaleSubRectAlpha(int a1) static int _movieScaleSubRectAlpha(int a1)
{ {
gMovieFlags |= 1; gMovieFlags |= 1;
return 0; return 0;
} }
// 0x486C80 // 0x486C80
int _blitAlpha(int win, unsigned char* a2, int a3, int a4, int a5) static int _blitAlpha(int win, unsigned char* a2, int a3, int a4, int a5)
{ {
unsigned char* buf; unsigned char* buf;
int offset; int offset;
@ -297,7 +326,7 @@ int _blitAlpha(int win, unsigned char* a2, int a3, int a4, int a5)
} }
// 0x486D84 // 0x486D84
int _blitNormal(int win, int a2, int a3, int a4, int a5) static int _blitNormal(int win, int a2, int a3, int a4, int a5)
{ {
unsigned char* buf; unsigned char* buf;
int offset; int offset;
@ -312,7 +341,7 @@ int _blitNormal(int win, int a2, int a3, int a4, int a5)
} }
// 0x486DDC // 0x486DDC
void movieSetPaletteEntriesImpl(unsigned char* palette, int start, int end) static void movieSetPaletteEntriesImpl(unsigned char* palette, int start, int end)
{ {
if (end != 0) { if (end != 0) {
gMovieSetPaletteEntriesProc(palette + start * 3, start, end + start - 1); gMovieSetPaletteEntriesProc(palette + start * 3, start, end + start - 1);
@ -320,7 +349,7 @@ void movieSetPaletteEntriesImpl(unsigned char* palette, int start, int end)
} }
// 0x486E08 // 0x486E08
int _noop() static int _noop()
{ {
return 0; return 0;
} }
@ -342,7 +371,7 @@ void movieInit()
} }
// 0x486E98 // 0x486E98
void _cleanupMovie(int a1) static void _cleanupMovie(int a1)
{ {
if (!_running) { if (!_running) {
return; return;
@ -489,7 +518,7 @@ void movieSetPaletteProc(MovieSetPaletteProc* proc)
} }
// 0x4872E8 // 0x4872E8
void _cleanupLast() static void _cleanupLast()
{ {
if (_lastMovieBuffer != NULL) { if (_lastMovieBuffer != NULL) {
internal_free_safe(_lastMovieBuffer, __FILE__, __LINE__); // "..\\int\\MOVIE.C", 981 internal_free_safe(_lastMovieBuffer, __FILE__, __LINE__); // "..\\int\\MOVIE.C", 981
@ -500,7 +529,7 @@ void _cleanupLast()
} }
// 0x48731C // 0x48731C
File* movieOpen(char* filePath) static File* movieOpen(char* filePath)
{ {
gMovieFileStream = fileOpen(filePath, "rb"); gMovieFileStream = fileOpen(filePath, "rb");
if (gMovieFileStream == NULL) { if (gMovieFileStream == NULL) {
@ -517,7 +546,7 @@ File* movieOpen(char* filePath)
} }
// 0x487380 // 0x487380
void movieLoadSubtitles(char* filePath) static void movieLoadSubtitles(char* filePath)
{ {
_subtitleW = windowGetWidth(gMovieWindow); _subtitleW = windowGetWidth(gMovieWindow);
_subtitleH = fontGetLineHeight() + 4; _subtitleH = fontGetLineHeight() + 4;
@ -600,7 +629,7 @@ void movieLoadSubtitles(char* filePath)
} }
// 0x48755C // 0x48755C
void movieRenderSubtitles() static void movieRenderSubtitles()
{ {
if (gMovieSubtitleHead == NULL) { if (gMovieSubtitleHead == NULL) {
return; return;
@ -658,7 +687,7 @@ void movieRenderSubtitles()
} }
// 0x487710 // 0x487710
int _movieStart(int win, char* filePath, int (*a3)()) static int _movieStart(int win, char* filePath, int (*a3)())
{ {
int v15; int v15;
int v16; int v16;
@ -729,7 +758,7 @@ int _movieStart(int win, char* filePath, int (*a3)())
} }
// 0x487964 // 0x487964
bool _localMovieCallback() static bool _localMovieCallback()
{ {
movieRenderSubtitles(); movieRenderSubtitles();
@ -774,7 +803,7 @@ int _movieRunRect(int win, char* filePath, int a3, int a4, int a5, int a6)
} }
// 0x487B7C // 0x487B7C
int _stepMovie() static int _stepMovie()
{ {
if (_alphaHandle != NULL) { if (_alphaHandle != NULL) {
int size; int size;

View File

@ -1,11 +1,6 @@
#ifndef MOVIE_H #ifndef MOVIE_H
#define MOVIE_H #define MOVIE_H
#include "db.h"
#include "geometry.h"
#include <SDL.h>
typedef enum MovieFlags { typedef enum MovieFlags {
MOVIE_FLAG_0x01 = 0x01, MOVIE_FLAG_0x01 = 0x01,
MOVIE_FLAG_0x02 = 0x02, MOVIE_FLAG_0x02 = 0x02,
@ -21,87 +16,18 @@ typedef enum MovieExtendedFlags {
MOVIE_EXTENDED_FLAG_0x10 = 0x10, MOVIE_EXTENDED_FLAG_0x10 = 0x10,
} MovieExtendedFlags; } MovieExtendedFlags;
typedef struct MovieSubtitleListNode {
int num;
char* text;
struct MovieSubtitleListNode* next;
} MovieSubtitleListNode;
typedef char* MovieBuildSubtitleFilePathProc(char* movieFilePath); typedef char* MovieBuildSubtitleFilePathProc(char* movieFilePath);
typedef void MovieSetPaletteEntriesProc(unsigned char* palette, int start, int end); typedef void MovieSetPaletteEntriesProc(unsigned char* palette, int start, int end);
typedef void MovieSetPaletteProc(int frame); typedef void MovieSetPaletteProc(int frame);
extern int gMovieWindow;
extern int gMovieSubtitlesFont;
extern MovieSetPaletteEntriesProc* gMovieSetPaletteEntriesProc;
extern int gMovieSubtitlesColorR;
extern int gMovieSubtitlesColorG;
extern int gMovieSubtitlesColorB;
extern Rect gMovieWindowRect;
extern Rect _movieRect;
extern void (*_movieCallback)();
extern MovieSetPaletteProc* gMoviePaletteProc;
extern int (*_failedOpenFunc)(char* filePath);
extern MovieBuildSubtitleFilePathProc* gMovieBuildSubtitleFilePathProc;
extern int _subtitleW;
extern int _lastMovieBH;
extern int _lastMovieBW;
extern int _lastMovieSX;
extern int _lastMovieSY;
extern int _movieScaleFlag;
extern int _lastMovieH;
extern int _lastMovieW;
extern int _lastMovieX;
extern int _lastMovieY;
extern MovieSubtitleListNode* gMovieSubtitleHead;
extern unsigned int gMovieFlags;
extern int _movieAlphaFlag;
extern bool _movieSubRectFlag;
extern int _movieH;
extern int _movieOffset;
extern void (*_movieCaptureFrameFunc)(void*, int, int, int, int, int);
extern unsigned char* _lastMovieBuffer;
extern int _movieW;
extern void (*_movieFrameGrabFunc)();
extern int _subtitleH;
extern int _running;
extern File* gMovieFileStream;
extern unsigned char* _alphaWindowBuf;
extern int _movieX;
extern int _movieY;
extern bool gMovieDirectSoundInitialized;
extern File* _alphaHandle;
extern unsigned char* _alphaBuf;
extern SDL_Surface* gMovieSdlSurface;
void* movieMallocImpl(size_t size);
void movieFreeImpl(void* ptr);
bool movieReadImpl(int fileHandle, void* buf, int count);
void movieDirectImpl(SDL_Surface* a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9);
void movieBufferedImpl(SDL_Surface* a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9);
int _movieScaleSubRectAlpha(int a1);
int _blitAlpha(int win, unsigned char* a2, int a3, int a4, int a5);
int _blitNormal(int win, int a2, int a3, int a4, int a5);
void movieSetPaletteEntriesImpl(unsigned char* palette, int start, int end);
int _noop();
void movieInit(); void movieInit();
void _cleanupMovie(int a1);
void movieExit(); void movieExit();
void _movieStop(); void _movieStop();
int movieSetFlags(int a1); int movieSetFlags(int a1);
void _movieSetPaletteFunc(MovieSetPaletteEntriesProc* proc); void _movieSetPaletteFunc(MovieSetPaletteEntriesProc* proc);
void movieSetPaletteProc(MovieSetPaletteProc* proc); void movieSetPaletteProc(MovieSetPaletteProc* proc);
void _cleanupLast();
File* movieOpen(char* filePath);
void movieLoadSubtitles(char* filePath);
void movieRenderSubtitles();
int _movieStart(int win, char* filePath, int (*a3)());
bool _localMovieCallback();
int _movieRun(int win, char* filePath); int _movieRun(int win, char* filePath);
int _movieRunRect(int win, char* filePath, int a3, int a4, int a5, int a6); int _movieRunRect(int win, char* filePath, int a3, int a4, int a5, int a6);
int _stepMovie();
void movieSetBuildSubtitleFilePathProc(MovieBuildSubtitleFilePathProc* proc); void movieSetBuildSubtitleFilePathProc(MovieBuildSubtitleFilePathProc* proc);
void movieSetVolume(int volume); void movieSetVolume(int volume);
void _movieUpdate(); void _movieUpdate();