1 #ifndef _FPCRTL_H_
2 #define _FPCRTL_H_
3 
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <string.h>
7 #include <unistd.h>
8 #include <math.h>
9 
10 #include "SysUtils.h"
11 #include "system.h"
12 #include "misc.h"
13 #include "fileio.h"
14 #include "pmath.h"
15 
16 #define fpcrtl_memcpy                       memcpy
17 
18 #define luapas_lua_gettop                   lua_gettop
19 #define luapas_lua_close                    lua_close
20 #define luapas_lua_createtable              lua_createtable
21 #define luapas_lua_error                    lua_error
22 #define luapas_lua_gc                       lua_gc
23 #define luapas_lua_getfield                 lua_getfield
24 #define luapas_lua_objlen                   lua_objlen
25 #define luapas_lua_call                     lua_call
26 #define luapas_lua_pcall                    lua_pcall
27 #define luapas_lua_pushboolean              lua_pushboolean
28 #define luapas_lua_pushcclosure             lua_pushcclosure
29 #define luapas_lua_pushinteger              lua_pushinteger
30 #define luapas_lua_pushnil                  lua_pushnil
31 #define luapas_lua_pushnumber               lua_pushnumber
32 #define luapas_lua_pushlstring              lua_pushlstring
33 #define luapas_lua_pushstring               lua_pushstring
34 #define luapas_lua_pushvalue                lua_pushvalue
35 #define luapas_lua_rawgeti                  lua_rawgeti
36 #define luapas_lua_setfield                 lua_setfield
37 #define luapas_lua_settop                   lua_settop
38 #define luapas_lua_toboolean                lua_toboolean
39 #define luapas_lua_tointeger                lua_tointeger
40 #define luapas_lua_tolstring                lua_tolstring
41 #define luapas_lua_tonumber                 lua_tonumber
42 #define luapas_lua_type                     lua_type
43 #define luapas_lua_typename                 lua_typename
44 #define luapas_luaL_argerror                luaL_argerror
45 #define luapas_luaL_checkinteger            luaL_checkinteger
46 #define luapas_luaL_checklstring            luaL_checklstring
47 #define luapas_luaL_loadfile                luaL_loadfile
48 #define luapas_luaL_loadstring              luaL_loadstring
49 #define luapas_luaL_newstate                luaL_newstate
50 #define luapas_luaL_optinteger              luaL_optinteger
51 #define luapas_luaL_optlstring              luaL_optlstring
52 #define luapas_luaL_prepbuffer              luaL_prepbuffer
53 #define luapas_luaL_ref                     luaL_ref
54 #define luapas_luaL_unref                   luaL_unref
55 #define luapas_luaopen_base                 luaopen_base
56 #define luapas_luaopen_math                 luaopen_math
57 #define luapas_luaopen_string               luaopen_string
58 #define luapas_luaopen_table                luaopen_table
59 #define luapas_lua_load                     lua_load
60 
61 #define sdlh_IMG_Load                       IMG_Load
62 #define sdlh_IMG_Load_RW                    IMG_Load_RW
63 
64 #ifndef EMSCRIPTEN
65 #define sdlh_Mix_AllocateChannels           Mix_AllocateChannels
66 #define sdlh_Mix_CloseAudio                 Mix_CloseAudio
67 #define sdlh_Mix_FadeInChannelTimed         Mix_FadeInChannelTimed
68 #define sdlh_Mix_FadeInMusic                Mix_FadeInMusic
69 #define sdlh_Mix_FadeOutChannel             Mix_FadeOutChannel
70 #define sdlh_Mix_FreeChunk                  Mix_FreeChunk
71 #define sdlh_Mix_FreeMusic                  Mix_FreeMusic
72 #define sdlh_Mix_HaltChannel                Mix_HaltChannel
73 #define sdlh_Mix_HaltMusic                  Mix_HaltMusic
74 #define sdlh_Mix_LoadMUS                    Mix_LoadMUS
75 #define sdlh_Mix_LoadMUS_RW                 Mix_LoadMUS_RW
76 #define sdlh_Mix_LoadWAV_RW                 Mix_LoadWAV_RW
77 #define sdlh_Mix_OpenAudio                  Mix_OpenAudio
78 #define sdlh_Mix_PauseMusic                 Mix_PauseMusic
79 #define sdlh_Mix_PlayChannelTimed           Mix_PlayChannelTimed
80 #define sdlh_Mix_Playing                    Mix_Playing
81 #define sdlh_Mix_ResumeMusic                Mix_ResumeMusic
82 #define sdlh_Mix_Volume                     Mix_Volume
83 #define sdlh_Mix_VolumeMusic                Mix_VolumeMusic
84 #else
85 #define sdlh_Mix_AllocateChannels           stub_Mix_AllocateChannels
86 #define sdlh_Mix_CloseAudio                 stub_Mix_CloseAudio
87 #define sdlh_Mix_FadeInChannelTimed         stub_Mix_FadeInChannelTimed
88 #define sdlh_Mix_FadeInMusic                stub_Mix_FadeInMusic
89 #define sdlh_Mix_FadeOutChannel             stub_Mix_FadeOutChannel
90 #define sdlh_Mix_FreeChunk                  stub_Mix_FreeChunk
91 #define sdlh_Mix_FreeMusic                  stub_Mix_FreeMusic
92 #define sdlh_Mix_HaltChannel                stub_Mix_HaltChannel
93 #define sdlh_Mix_HaltMusic                  stub_Mix_HaltMusic
94 #define sdlh_Mix_LoadMUS                    stub_Mix_LoadMUS
95 #define sdlh_Mix_LoadMUS_RW                 stub_Mix_LoadMUS_RW
96 #define sdlh_Mix_LoadWAV_RW                 stub_Mix_LoadWAV_RW
97 #define sdlh_Mix_OpenAudio                  stub_Mix_OpenAudio
98 #define sdlh_Mix_PauseMusic                 stub_Mix_PauseMusic
99 #define sdlh_Mix_PlayChannelTimed           stub_Mix_PlayChannelTimed
100 #define sdlh_Mix_Playing                    stub_Mix_Playing
101 #define sdlh_Mix_ResumeMusic                stub_Mix_ResumeMusic
102 #define sdlh_Mix_Volume                     stub_Mix_Volume
103 #define sdlh_Mix_VolumeMusic                stub_Mix_VolumeMusic
104 #endif
105 
106 #define sdlh_SDL_free                       SDL_free
107 #define sdlh_SDL_ConvertSurface             SDL_ConvertSurface
108 #define sdlh_SDL_CreateRGBSurface           SDL_CreateRGBSurface
109 #define sdlh_SDL_CreateThread               SDL_CreateThread
110 #define sdlh_SDL_Delay                      SDL_Delay
111 #define sdlh_SDL_EnableKeyRepeat            SDL_EnableKeyRepeat
112 #define sdlh_SDL_EnableUNICODE              SDL_EnableUNICODE
113 #define sdlh_SDL_FillRect                   SDL_FillRect
114 #define sdlh_SDL_FreeSurface                SDL_FreeSurface
115 #define sdlh_SDL_GetError                   SDL_GetError
116 #define sdlh_SDL_GetKeyName                 SDL_GetKeyName
117 #define sdlh_SDL_GetKeyboardState           SDL_GetKeyboardState
118 #define sdlh_SDL_GetMouseState              SDL_GetMouseState
119 #define sdlh_SDL_GetRGBA                    SDL_GetRGBA
120 #define sdlh_SDL_GetTicks                   SDL_GetTicks
121 #define sdlh_SDL_GL_SetAttribute            SDL_GL_SetAttribute
122 #define sdlh_SDL_GL_SwapBuffers             SDL_GL_SwapBuffers
123 #define sdlh_SDL_Init                       SDL_Init
124 #define sdlh_SDL_InitSubSystem              SDL_InitSubSystem
125 #define sdlh_SDL_JoystickClose              SDL_JoystickClose
126 #define sdlh_SDL_JoystickEventState         SDL_JoystickEventState
127 #define sdlh_SDL_JoystickName               SDL_JoystickName
128 #define sdlh_SDL_JoystickNumAxes            SDL_JoystickNumAxes
129 #define sdlh_SDL_JoystickNumButtons         SDL_JoystickNumButtons
130 #define sdlh_SDL_JoystickNumHats            SDL_JoystickNumHats
131 #define sdlh_SDL_JoystickOpen               SDL_JoystickOpen
132 #define sdlh_SDL_LockSurface                SDL_LockSurface
133 #define sdlh_SDL_MapRGB                     SDL_MapRGB
134 #define sdlh_SDL_MapRGBA                    SDL_MapRGBA
135 #define sdlh_SDL_NumJoysticks               SDL_NumJoysticks
136 #define sdlh_SDL_PeepEvents                 SDL_PeepEvents
137 #define sdlh_SDL_PumpEvents                 SDL_PumpEvents
138 #define sdlh_SDL_Quit                       SDL_Quit
139 #define sdlh_SDL_RWFromFile                 SDL_RWFromFile
140 #define sdlh_SDL_SetColorKey                SDL_SetColorKey
141 #define sdlh_SDL_SetVideoMode               SDL_SetVideoMode
142 #define sdlh_SDL_WaitThread                 SDL_WaitThread
143 #define sdlh_SDL_CreateMutex                SDL_CreateMutex
144 #define sdlh_SDL_DestroyMutex               SDL_DestroyMutex
145 #define sdlh_SDL_LockMutex                  SDL_LockMutex
146 #define sdlh_SDL_UnlockMutex                SDL_UnlockMutex
147 #ifndef EMSCRIPTEN
148 #define sdlh_SDL_ShowCursor                 SDL_ShowCursor
149 #else
150 #define sdlh_SDL_ShowCursor                 SDL_ShowCursor_patch
151 #endif
152 #define sdlh_SDL_UnlockSurface              SDL_UnlockSurface
153 #define sdlh_SDL_UpperBlit                  SDL_UpperBlit
154 #define sdlh_SDL_VideoDriverName            SDL_VideoDriverName
155 #define sdlh_SDL_WarpMouse                  SDL_WarpMouse
156 #define sdlh_SDL_WM_SetCaption              SDL_WM_SetCaption
157 #define sdlh_SDL_WM_SetIcon                 SDL_WM_SetIcon
158 #define sdlh_SDLNet_AddSocket               SDLNet_AddSocket
159 #define sdlh_SDLNet_AllocSocketSet          SDLNet_AllocSocketSet
160 #define sdlh_SDLNet_CheckSockets            SDLNet_CheckSockets
161 #define sdlh_SDLNet_FreeSocketSet           SDLNet_FreeSocketSet
162 #define sdlh_SDLNet_Init                    SDLNet_Init
163 #define sdlh_SDLNet_Quit                    SDLNet_Quit
164 #define sdlh_SDLNet_ResolveHost             SDLNet_ResolveHost
165 #define sdlh_SDLNet_TCP_Close               SDLNet_TCP_Close
166 #define sdlh_SDLNet_TCP_Open                SDLNet_TCP_Open
167 #define sdlh_SDLNet_TCP_Recv                SDLNet_TCP_Recv
168 #define sdlh_SDLNet_TCP_Send                SDLNet_TCP_Send
169 #define sdlh_TTF_Init                       TTF_Init
170 #define sdlh_TTF_OpenFont                   TTF_OpenFont
171 #define sdlh_TTF_OpenFontRW                 TTF_OpenFontRW
172 #define sdlh_TTF_Quit                       TTF_Quit
173 #define sdlh_TTF_RenderUTF8_Blended         TTF_RenderUTF8_Blended
174 #define sdlh_TTF_RenderUTF8_Solid           TTF_RenderUTF8_Solid
175 #define sdlh_TTF_SetFontStyle               TTF_SetFontStyle
176 #define sdlh_TTF_SizeUTF8                   TTF_SizeUTF8
177 
178 #define uphysfslayer_physfsReaderSetBuffer  physfsReaderSetBuffer
179 #define uphysfslayer_physfsReader           physfsReader
180 #define uphysfslayer_hedgewarsMountPackage  hedgewarsMountPackage
181 #define uphysfslayer_hedgewarsMountPackages hedgewarsMountPackages
182 
183 #define uphysfslayer_PHYSFSRWOPS_openRead   PHYSFSRWOPS_openRead
184 #define uphysfslayer_PHYSFSRWOPS_openWrite  PHYSFSRWOPS_openWrite
185 
186 #define _strconcat                          fpcrtl_strconcat
187 #define _strappend                          fpcrtl_strappend
188 #define _strprepend                         fpcrtl_strprepend
189 #define _strcompare                         fpcrtl_strcompare
190 #define _strncompare                        fpcrtl_strncompare
191 #define _strcomparec                        fpcrtl_strcomparec
192 #define _chrconcat                          fpcrtl_chrconcat
193 #define _pchar                              fpcrtl_pchar
194 #define _strconcatA                         fpcrtl_strconcatA
195 #define _strncompareA                       fpcrtl_strncompareA
196 #define _strappendA                         fpcrtl_strappendA
197 
198 // hooks are implemented in javascript
199 void start_hook(void);
200 void mainloop_hook(void);
201 void clear_filelist_hook(void);
202 void add_file_hook(const char* ptr);
203 void idb_loader_hook();
204 void showcursor_hook();
205 void hidecursor_hook();
206 void drawworld_init_hook();
207 #endif
208