aboutsummaryrefslogtreecommitdiff
path: root/backends/gp32/portdefs.h
blob: c6cd3a27fe829d280a76bbc1350d6059eb3942c0 (plain)
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
/* ScummVM - Scumm Interpreter
 * Copyright (C) 2001  Ludvig Strigeus
 * Copyright (C) 2001/2004 The ScummVM project
 * Copyright (C) 2002 Ph0x - GP32 Backend
 * Copyright (C) 2003/2004 DJWillis - GP32 Backend
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.

 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.

 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 * $Header$
 *
 */

#ifndef PORTDEFS_H
#define PORTDEFS_H

// Prevents error trying to call main() twice from within the program ;-).
#ifndef REAL_MAIN
	#define main scummvm_main
#endif /* REAL_MAIN */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <math.h>
#include <time.h>
#include <cctype>

//??
//#include <math.h>
//#include <time.h>

// GP32 SDK Includes
#include <gpfont.h>
#include <gpfont16.h>
#include <gpfont_port.h>
#include <gpgraphic.h>
#include <gpgraphic16.h>
#include <gpmm.h>
#include <gpmem.h>
#include <gpos_def.h>
#include <gpstdio.h>
#include <gpstdlib.h>
#include <gpdef.h>

#define size_t long unsigned int // SDK hack

// Undefine SDK defs.

#undef byte
#undef malloc
#undef calloc
#undef free

#undef stderr
#undef stdout
#undef stdin

// Redefine SDK defs.
typedef unsigned char u8;
typedef signed char s8;
typedef unsigned short u16;
typedef short s16;
typedef unsigned int u32;
typedef int s32;
typedef int time_t;

extern int gpprintf(const char *fmt, ...);
#define printf gpprintf

extern void *gpmalloc(size_t size);
extern void *gpcalloc(size_t nitems, size_t size);
extern void gpfree(void *block);
extern char *gpstrdup(const char *s);

#define malloc gpmalloc
#define calloc gpcalloc //gm_calloc
//#define calloc gm_calloc
#define free gpfree

//	#define memset gm_memset
//	#define memcopy gm_memcopy
//
//	#define strcpy gm_strcpy	// uncomment?
//	#define strncpy gm_strncpy
//	#define strcat gm_strcat
//	#define sprintf gm_sprintf

#define strdup gpstrdup

#define assert(e) ((e) ? 0 : (printf("!AS: " #e " (%s, %d)\n", __FILE__, __LINE__)))
#define ASSERT assert

#define ENDLESSLOOP while (1)

#define FILE F_HANDLE
extern FILE *fstderr;
extern FILE *fstdout;
extern FILE *fstdin;

#define stderr fstderr
#define stdout fstdout
#define stdin fstdin

extern FILE *gpfopen(const char *filename, const char *mode);
extern int gpfclose(FILE *stream);
extern int gpfseek(FILE *stream, long offset, int whence);
extern size_t gpfread(void *ptr, size_t size, size_t n, FILE *stream);
extern size_t gpfwrite(const void *ptr, size_t size, size_t n, FILE*stream);
extern long gpftell(FILE *stream);
extern void gpclearerr(FILE *stream);
extern int gpfeof(FILE *stream);
extern char *gpfgets(char *s, int n, FILE *stream);
extern int gpfflush(FILE *stream);
extern char gpfgetc(FILE *stream);

#define fopen gpfopen
#define fclose gpfclose
#define fseek gpfseek
#define fread gpfread
#define fwrite gpfwrite
#define ftell gpftell

#undef clearerr
#define clearerr gpclearerr

#undef feof
#define feof gpfeof
#define fgets gpfgets
#define fgetc gpfgetc
#define getc gpfgetc

extern int gpfprintf(FILE *stream, const char *fmt, ...);
#define fprintf gpfprintf
#define fflush gpfflush

extern void gpexit(int code);
#define exit gpexit
//#define error printf

//extern time_t gptime(time_t *timer);
//#define time gptime

// MARK Debug Point.
#define MARK printf("MARK: %s, %s, %d", __FILE__, __FUNCTION__, __LINE__);

extern void *gpmemset (void *s, int c, size_t n);
extern void *gpmemcpy (void *dest, const void *src, size_t n);
//#define memset gpmemset
//#define memcpy gpmemcpy

// Missing stuff
int stricmp(const char *string1, const char *string2);
int strnicmp(const char *string1, const char *string2, int len);
inline float sin(float) { return 0; }
inline float cos(float) { return 0; }
inline float sqrt(float) { return 0; }
inline float atan2(float, float) { return 0; }

// EOF
#endif /* PORTDEFS_H */