Subversion Repositories Games.Rick Dangerous

Rev

Rev 9 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 pmbaty 1
/*
2
 * src/system.h
3
 *
4
 * Copyright (C) 1998-2002 BigOrno (bigorno@bigorno.net). All rights reserved.
5
 *
6
 * The use and distribution terms for this software are contained in the file
7
 * named README, which can be found in the root of this distribution. By
8
 * using this software in any fashion, you are agreeing to be bound by the
9
 * terms of this license.
10
 *
11
 * You must not remove this notice, or any other, from this software.
12
 */
13
 
14
#ifndef _SYSTEM_H
15
#define _SYSTEM_H
16
 
5 pmbaty 17
#include <stdint.h>
18
typedef uint8_t U8;
19
typedef uint16_t U16;
20
typedef uint32_t U32;
21
typedef int8_t S8;
22
typedef int16_t S16;
23
typedef int32_t S32;
11 pmbaty 24
#ifdef _WIN32
7 pmbaty 25
#include <stdio.h> // for sprintf_s() and the likes
11 pmbaty 26
#else // !_WIN32
5 pmbaty 27
#define strcpy_s(dest,size,source) strcpy (dest, source)
28
#define strcat_s(dest,size,source) strcat (dest, source)
29
#define sprintf_s(dest,size,format,...) sprintf (dest, format, __VA_ARGS__)
30
#define strncpy_s(dest,size,source,count) strncpy (dest, source, count)
31
#define vsprintf_s(buffer,maxsize,format,...) vsprintf(buffer,format, ##__VA_ARGS__)
32
#define fopen_s(fp,filename,mode) *(fp) = fopen (filename, mode)
11 pmbaty 33
#endif // _WIN32
1 pmbaty 34
 
35
/* this must be after typedefs because it relies on types defined above */
36
#include "rects.h"
37
#include "img.h"
38
 
39
/*
40
 * main section
41
 */
42
extern void sys_init (int, char **);
43
extern void sys_shutdown (void);
2 pmbaty 44
extern char *sys_getbasepath (void);
1 pmbaty 45
extern void sys_panic (char *, ...);
46
extern void sys_printf (char *, ...);
47
extern U32 sys_gettime (void);
48
extern void sys_sleep (int);
49
 
50
/*
51
 * video section
52
 */
53
extern void sysvid_init (void);
54
extern void sysvid_shutdown (void);
55
extern void sysvid_clear (void);
56
extern void sysvid_paint (rect_t *);
57
 
58
/*
59
 * events section
60
 */
61
extern void sysevt_poll (void);
62
extern void sysevt_wait (void);
63
 
64
/*
65
 * sound section
66
 */
67
typedef struct
68
{
69
   U8 *buf;
70
   U32 len;
71
   U8 dispose;
72
} sound_t;
73
 
74
extern void syssnd_init (void);
75
extern void syssnd_shutdown (void);
76
extern void syssnd_vol (S8);
77
extern void syssnd_toggleMute (void);
78
extern S8 syssnd_play (sound_t *, S8);
79
extern void syssnd_pause (U8, U8);
80
extern void syssnd_stopchan (S8);
81
extern void syssnd_stopsound (sound_t *);
82
extern void syssnd_stopall (void);
83
extern int syssnd_isplaying (sound_t *);
84
extern sound_t *syssnd_load (char *name);
85
extern void syssnd_free (sound_t *);
86
 
87
/*
88
 * args section
89
 */
90
extern int sysarg_args_period;
91
extern int sysarg_args_map;
92
extern int sysarg_args_submap;
9 pmbaty 93
extern int sysarg_args_score;
1 pmbaty 94
extern int sysarg_args_nosound;
95
extern int sysarg_args_vol;
96
 
97
extern void sysarg_init (int, char **);
98
 
99
/*
100
 * joystick section
101
 */
102
extern void sysjoy_init (void);
103
extern void sysjoy_shutdown (void);
104
 
105
#endif