-
Notifications
You must be signed in to change notification settings - Fork 32
/
Copy pathmvapi.h
143 lines (103 loc) · 4.14 KB
/
mvapi.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#ifndef MVAPI_H
#define MVAPI_H
#ifndef Q3_VM
# include <stdint.h>
#else
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
#endif
// -------------------------------------- API Version -------------------------------------- //
// MV_APILEVEL defines the API-Level which implements the following features.
// MV_MIN_VERSION is the minimum required JK2MV version which implements this API-Level.
// All future JK2MV versions are guaranteed to implement this API-Level.
// ----------------------------------------------------------------------------------------- //
#define MV_APILEVEL 3
#define MV_MIN_VERSION "1.4"
// ----------------------------------------------------------------------------------------- //
// ----------------------------------------- SHARED ---------------------------------------- //
typedef enum {
MVFIX_NONE = 0,
/* GAME */
MVFIX_NAMECRASH = (1 << 0),
MVFIX_FORCECRASH = (1 << 1),
MVFIX_GALAKING = (1 << 2),
MVFIX_BROKENMODEL = (1 << 3),
MVFIX_TURRETCRASH = (1 << 4),
MVFIX_CHARGEJUMP = (1 << 5),
MVFIX_SPEEDHACK = (1 << 6),
MVFIX_SABERSTEALING = (1 << 7),
MVFIX_PLAYERGHOSTING = (1 << 8),
/* CGAME */
MVFIX_WPGLOWING = (1 << 16),
} mvfix_t;
typedef enum {
VERSION_UNDEF = 0,
VERSION_1_02 = 2,
VERSION_1_03 = 3,
VERSION_1_04 = 4,
} mvversion_t;
typedef enum
{
FLOCK_SH,
FLOCK_EX,
FLOCK_UN
} flockCmd_t;
// ******** SYSCALLS ******** //
// qboolean trap_MVAPI_ControlFixes(int fixes);
#define MVAPI_CONTROL_FIXES 703 /* asm: -704 */
// mvversion_t trap_MVAPI_GetVersion(void);
#define MVAPI_GET_VERSION 704 /* asm: -705 */
// int trap_FS_FLock(fileHandle_t h, flockCmd_t cmd, qboolean nb);
#define MVAPI_FS_FLOCK 708 /* asm: -709 */
// void trap_MVAPI_SetVersion(mvversion_t version);
#define MVAPI_SET_VERSION 709 /* asm: -710 */
// ******** VMCALLS ******** //
// vmMain(MVAPI_AFTER_INIT, ...)
#define MVAPI_AFTER_INIT 100
// ----------------------------------------- GAME ------------------------------------------ //
typedef enum {
MV_IPV4
} mviptype_t;
typedef struct {
mviptype_t type;
union {
uint8_t v4[4];
uint8_t reserved[16];
} ip;
uint16_t port;
} mvaddr_t;
#define MVF_NOSPEC 0x01
#define MVF_SPECONLY 0x02
typedef struct {
uint8_t snapshotIgnore[32];
uint8_t snapshotEnforce[32];
uint32_t mvFlags;
} mvsharedEntity_t;
// ******** SYSCALLS ******** //
// qboolean trap_MVAPI_SendConnectionlessPacket(const mvaddr_t *addr, const char *message);
#define G_MVAPI_SEND_CONNECTIONLESSPACKET 700 /* asm: -701 */
// qboolean trap_MVAPI_GetConnectionlessPacket(mvaddr_t *addr, char *buf, unsigned int bufsize);
#define G_MVAPI_GET_CONNECTIONLESSPACKET 701 /* asm: -702 */
// qboolean trap_MVAPI_LocateGameData(mvsharedEntity_t *mvEnts, int numGEntities, int sizeofmvsharedEntity_t);
#define G_MVAPI_LOCATE_GAME_DATA 702 /* asm: -703 */
// qboolean trap_MVAPI_DisableStructConversion(qboolean disable);
#define G_MVAPI_DISABLE_STRUCT_CONVERSION 705 /* asm: -706 */
// ******** VMCALLS ******** //
// vmMain(GAME_MVAPI_RECV_CONNECTIONLESSPACKET, ...)
#define GAME_MVAPI_RECV_CONNECTIONLESSPACKET 101
// ------------------------------------------ UI ------------------------------------------- //
#define MVSORT_CLIENTS_NOBOTS 5
// ******** SYSCALLS ******** //
// void trap_R_AddRefEntityToScene2(const refEntity_t *re);
#define UI_MVAPI_R_ADDREFENTITYTOSCENE2 706 /* asm: -707 */
// void trap_MVAPI_SetVirtualScreen(float w, float h);
#define UI_MVAPI_SETVIRTUALSCREEN 707 /* asm: -708 */
// ---------------------------------------- CGAME ------------------------------------------ //
// ******** SYSCALLS ******** //
// void trap_R_AddRefEntityToScene2(const refEntity_t *re);
#define CG_MVAPI_R_ADDREFENTITYTOSCENE2 706 /* asm: -707 */
// void trap_MVAPI_SetVirtualScreen(float w, float h);
#define CG_MVAPI_SETVIRTUALSCREEN 707 /* asm: -708 */
// ----------------------------------------------------------------------------------------- //
#endif /* MVAPI_H */