1
0
Fork 0
forked from fte/fteqw
fteqw/engine/common/vm.h
Spoike 8184225473 Initial Checkin
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@15 fc73d0e0-1445-4013-8a0c-d673dee63da5
2004-08-23 00:15:46 +00:00

61 lines
1.2 KiB
C

#ifndef _VM_H
#define _VM_H
#ifdef _WIN32
#define EXPORT_FN __cdecl
#else
#define EXPORT_FN
#endif
typedef int (EXPORT_FN *sys_call_t) (int arg, ...);
typedef long (*sys_callex_t) (void *offset, unsigned int mask, int fn, const long *arg);
typedef struct vm_s vm_t;
// for syscall users
#define VM_LONG(x) (*(long*)&(x))
#define VM_FLOAT(x) (*(float*)&(x))
#define VM_POINTER(x) ((x)?(void*)((char *)offset+((x)%mask)):NULL)
// ------------------------- * interface * -------------------------
void VM_PrintInfo(vm_t *vm);
vm_t *VM_Create(vm_t *vm, const char *name, sys_call_t syscall, sys_callex_t syscallex);
void VM_Destroy(vm_t *vm);
qboolean VM_Restart(vm_t *vm);
int VARGS VM_Call(vm_t *vm, int instruction, ...);
//these things are specific to FTE QuakeWorld
void UI_Init (void);
void UI_Stop (void);
qboolean UI_Q2LayoutChanged(void);
void UI_StringChanged(int num);
void UI_MousePosition(int xpos, int ypos);
int UI_MenuState(void);
qboolean UI_KeyPress(int key, qboolean down);
void UI_Reset(void);
void UI_DrawMenu(void);
qboolean UI_DrawStatusBar(int scores);
qboolean UI_DrawIntermission(void);
qboolean UI_DrawFinale(void);
int UI_MenuState(void);
#ifdef VM_CG
void CG_Stop (void);
void CG_Start (void);
int CG_Refresh(void);
#endif
#endif