aboutsummaryrefslogtreecommitdiff
path: root/api.h
diff options
context:
space:
mode:
Diffstat (limited to 'api.h')
-rw-r--r--api.h39
1 files changed, 37 insertions, 2 deletions
diff --git a/api.h b/api.h
index 086ef46..d1afbc2 100644
--- a/api.h
+++ b/api.h
@@ -4,8 +4,10 @@
#ifndef ENGINEAPI_H
#define ENGINEAPI_H
-#define INTERFACEVERSION_VENGINESERVER "VEngineServer021"
+#define VENGINE_SERVER_INTERFACE_VERSION "VEngineServer021"
#define VENGINE_CLIENT_INTERFACE_VERSION "VEngineClient013"
+#define VENGINE_LAUNCHER_INTERFACE_VERSION "VENGINE_LAUNCHER_API_VERSION004"
+#define VENGINE_TOOL_INTERFACE_VERSION "VENGINETOOL003"
#include "intdef.h"
@@ -25,13 +27,42 @@ struct engclient {
} *vt;
};
+struct engineapi {
+ struct {
+ usize _pad[7];
+ void *set_engine_window;
+ } *vt;
+};
+
+struct enginetools {
+ struct {
+ usize _pad[64];
+ void *is_recording_movie;
+ } *vt;
+};
+
+struct movieinfo {
+ char name[256];
+ int curframe;
+ int type;
+ int jpeg_quality;
+};
+
+struct videomode {
+ struct {
+ usize _pad[22];
+ void (*__thiscall write_movie_frame)(struct videomode *this,
+ struct movieinfo *info);
+ } *vt;
+};
+
struct demoplayer {
struct {
void *_destructor;
void * (*__thiscall get_demo_file)(struct demoplayer *this);
int (*__thiscall get_playback_tick)(struct demoplayer *this);
int (*__thiscall get_total_ticks)(struct demoplayer *this);
- void *_whatisthisihavenoidea;
+ void *_whatisthisihavenoidea; // TODO
bool (*__thiscall start_playback)(struct demoplayer *this,
const char *filename, bool as_time_demo);
bool (*__thiscall is_playing_back)(struct demoplayer *this);
@@ -55,7 +86,11 @@ struct demoplayer {
#ifndef NO_EXTERNS
extern struct engserver *engserver;
extern struct engclient *engclient;
+extern struct engineapi *engineapi;
+extern struct enginetools *enginetools;
extern struct demoplayer *demoplayer;
+extern struct videomode **videomode;
+extern struct movieinfo *movieinfo;
extern void (*cbuf_addtext)(char *);
#endif