alexschrod / freedink-lua Goto Github PK
View Code? Open in Web Editor NEWA fork of GNU FreeDink (https://www.gnu.org/software/freedink/) in which I implemented Lua scripting
License: GNU General Public License v3.0
A fork of GNU FreeDink (https://www.gnu.org/software/freedink/) in which I implemented Lua scripting
License: GNU General Public License v3.0
This is GNU FreeDink, a portable and enhanced version of the Dink Smallwood game engine. FreeDink is free software, and you are welcome to redistribute it under certain conditions; see the GNU GPL for details. ( cf. COPYING and http://gnu.org/licenses/gpl.html ) Building -------- If you are compiling GNU FreeDink from sources, check BUILD for instructions. About Dink Smallwood -------------------- Dink Smallwood is an adventure/role-playing game, similar to Zelda, made by RTsoft. Besides twisted humour, it includes the actual game editor, allowing players to create hundreds of new adventures called Dink Modules or D-Mods for short. The Dink Network (http://www.dinknetwork.com/) hosts a copy of almost all of them. GNU FreeDink ------------ GNU FreeDink is a new and portable version of the game engine, which runs the original game as well as its D-Mods, with close compatibility, under multiple platforms. FreeDink can run in 2 modes: * v1.08 (default): this matches the latest release of the Dink engine, which includes some new features and some backward-incompatible changes. Use it for recent D-Mods. * v1.07 (with option '--v1.07'): this matches v1.07 of the Dink engine, essentially unmodified since 1998. Use it to play D-Mods released before 2006. Next step is extending the engine while preserving accurate support for released D-Mods. On the technical level, the internals of the engines experience a clean-up to allow for portability and later improvements. Check out FreeDink's website at http://www.freedink.org/ . Game keys --------- Keyboard controls <ARROW KEYS> Makes Dink walk/push <CTRL> Attack/Use equipped item/Select option <SPACE> Talk/Examine/Manipulate <SHIFT> Use equipped magic <ENTER> Inventory/Equip screen <ESC> Options <M> Display map (if you have one) <Alt-Return> Toggle fullscreen mode <Tab> When maintained, enable Turbo mode Keyboard controls: Inventory/Equip screen <ARROW KEYS> Highlight Item/Weapon or Magic <CTRL> Select highlighted Item/Weapon or Magic <ENTER> Exit inventory screen Joystick/Gamepad controls <ANY DIR.> Makes Dink walk/push <BUTTON 1> Attack/Use equipped item/Select option <BUTTON 2> Talk/Examine/Manipulate <BUTTON 3> Use equipped magic <BUTTON 4> Inventory/Equip screen <BUTTON 5> Options <BUTTON 6> Display map (if you have one) Joystick/Gamepad controls: Inventory/Equip screen <ANY DIR.> Highlight Item/Weapon or Magic <BUTTON 1> Select highlighted Item/Weapon or Magic <BUTTON 4> Exit Inventory/Equip screen Other <Alt-M> Stop playing current MIDI song <Alt-Q> Quick quit to Windows <Alt-D> Enable debug mode D-Mods may add additional keys, usually they will explain it within the game. About GNU --------- FreeDink is part of the GNU project, whose aim is to create "GNU", a completely free (as in freedom) operating system. Its most famous variant these days is GNU/Linux. A engine to play the Dink Smallwood game and D-Mods is definitely a must for the GNU OS ;) Check http://www.gnu.org/ for more information. Game data --------- Get the free game data separately from the 'freedink-data' package at: http://ftp.gnu.org/gnu/freedink/ Note: The original game contained sounds that were not owned by RTsoft and hence could not be released under a free license. We're looking for free replacements! Please send contributions at [email protected]. See http://www.freedink.org/doc/sounds/ for more information. Other FreeDink applications --------------------------- DFArc, a graphical front-end run the game and manage D-Mods, was also ported and extended. Get new version 3 at http://www.freedink.org/ . Technical information --------------------- Check the 'doc' directory for technical/developer considerations. --- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.
I'm unable to build this from source. What I'm trying:
Copy gnulib into the gnulib/ folder.
autoreconf -fis
./configure --prefix=/tmp/dinklua
make
make install
This fails with the error that RELOCATABLE_VIA_LD can only be used inside AM_CONDITIONAL; I just commented it out, because it is set on my system. That's not a fix, obviously.
It has some trouble with gnulib/po/, which is likely my inability to use it properly; I've removed all references to it from configure.ac and Makefile.am, for now I don't care if i18n works.
Then make fails with a lot of errors for which I don't see an obvious solution. They may have to do with gnulib (which I shouldn't need at all; I'm running on a GNU system; but hash.h isn't available here).
The build output is (I would have attached it, but github doesn't let me attach text files):
make all-recursive
make[1]: Entering directory '/home/shevek/src/freedink-lua'
Making all in gnulib/lib
make[2]: Entering directory '/home/shevek/src/freedink-lua/gnulib/lib'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/shevek/src/freedink-lua/gnulib/lib'
Making all in nsis
make[2]: Entering directory '/home/shevek/src/freedink-lua/nsis'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/shevek/src/freedink-lua/nsis'
Making all in po
make[2]: Entering directory '/home/shevek/src/freedink-lua/po'
make[2]: Leaving directory '/home/shevek/src/freedink-lua/po'
Making all in src
make[2]: Entering directory '/home/shevek/src/freedink-lua/src'
gcc -DHAVE_CONFIG_H -I. -I.. -DDEFAULT_DATA_DIR="/tmp/dinklua/share" -I../gnulib/lib -I../gnulib/lib -DINSTALLDIR="/tmp/dinklua/bin" -DLOCALEDIR="/tmp/dinklua/share/locale" -I../intl -I../intl -g -O2 -Wall -std=c99 -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL -I/usr/include/lua5.2 -I/usr/include/freetype2 -I/usr/lib/i386-linux-gnu/libzip/include -MT bgm.o -MD -MP -MF .deps/bgm.Tpo -c -o bgm.o bgm.c
In file included from sp_custom.h:26:0,
from game_engine.h:34,
from bgm.c:37:
../gnulib/lib/hash.h: In function ‘hash_get_n_buckets’:
../gnulib/lib/hash.h:72:48: error: expected declaration specifiers before ‘_GL_ATTRIBUTE_PURE’
size_t hash_get_n_buckets (const Hash_table *) _GL_ATTRIBUTE_PURE;
^
../gnulib/lib/hash.h:73:53: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘_GL_ATTRIBUTE_PURE’
size_t hash_get_n_buckets_used (const Hash_table *) _GL_ATTRIBUTE_PURE;
^
../gnulib/lib/hash.h:74:48: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘_GL_ATTRIBUTE_PURE’
size_t hash_get_n_entries (const Hash_table *) _GL_ATTRIBUTE_PURE;
^
../gnulib/lib/hash.h:75:56: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘_GL_ATTRIBUTE_PURE’
size_t hash_get_max_bucket_length (const Hash_table *) _GL_ATTRIBUTE_PURE;
^
../gnulib/lib/hash.h:76:41: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘_GL_ATTRIBUTE_PURE’
bool hash_table_ok (const Hash_table *) _GL_ATTRIBUTE_PURE;
^
../gnulib/lib/hash.h:81:43: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘_GL_ATTRIBUTE_PURE’
void *hash_get_first (const Hash_table *) _GL_ATTRIBUTE_PURE;
^
../gnulib/lib/hash.h:87:43: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘_GL_ATTRIBUTE_PURE’
size_t hash_string (const char _, size_t) GL_ATTRIBUTE_PURE;
^
In file included from game_engine.h:34:0,
from bgm.c:37:
sp_custom.h:28:21: error: storage class specified for parameter ‘sp_custom’
typedef Hash_table sp_custom;
^
sp_custom.h:30:18: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘sp_custom_new’
extern sp_custom sp_custom_new();
^
sp_custom.h:31:28: error: expected declaration specifiers or ‘...’ before ‘sp_custom’
extern void sp_custom_free(sp_custom hash);
^
sp_custom.h:32:27: error: expected declaration specifiers or ‘...’ before ‘sp_custom’
extern void sp_custom_set(sp_custom hash, const char key[200], int val);
^
sp_custom.h:33:26: error: expected declaration specifiers or ‘...’ before ‘sp_custom’
extern int sp_custom_get(sp_custom hash, const char key[200]);
^
sp_custom.h:34:29: error: expected declaration specifiers or ‘...’ before ‘sp_custom’
extern void sp_custom_clear(sp_custom hash);
^
In file included from game_engine.h:35:0,
from bgm.c:37:
scripting.h:30:1: warning: empty declaration [enabled by default]
struct script_engine
^
scripting.h:104:1: warning: empty declaration [enabled by default]
struct scriptinfo
^
scripting.h:112:27: error: storage class specified for parameter ‘sinfo’
extern struct scriptinfo sinfo[];
^
scripting.h:114:1: warning: empty declaration [enabled by default]
struct call_back
^
scripting.h:125:25: error: storage class specified for parameter ‘callback’
extern struct call_back callback[MAX_CALLBACKS];
^
scripting.h:132:1: warning: empty declaration [enabled by default]
struct varman
^
scripting.h:141:1: warning: empty declaration [enabled by default]
struct global_function
^
scripting.h:147:13: error: storage class specified for parameter ‘scripting_error’
extern char scripting_error[255];
^
scripting.h:150:12: error: storage class specified for parameter ‘var_exists’
extern int var_exists(const char name[20], int scope);
^
scripting.h:151:12: error: storage class specified for parameter ‘scripting_make_int’
extern int scripting_make_int(const char name[80], int value, int scope);
^
scripting.h:152:12: error: storage class specified for parameter ‘search_var_with_this_scope’
extern int search_var_with_this_scope(char variable, int scope);
^
scripting.h:153:12: error: storage class specified for parameter ‘search_var_with_this_scope_108’
extern int search_var_with_this_scope_108(char* variable, int var_scope);
^
scripting.h:154:20: error: storage class specified for parameter ‘load_game_small’
extern /bool/int load_game_small(int num, char line[196], int mytime);
^
scripting.h:155:13: error: storage class specified for parameter ‘var_replace’
extern void var_replace(char* line_p, int scope);
^
scripting.h:156:14: error: storage class specified for parameter ‘scripting_find_script_for_engine’
extern char* scripting_find_script_for_engine(struct script_engine script_engine, const char filename);
^
scripting.h:158:13: error: storage class specified for parameter ‘scripting_init’
extern void scripting_init();
^
scripting.h:159:13: error: storage class specified for parameter ‘scripting_quit’
extern void scripting_quit();
^
scripting.h:160:12: error: storage class specified for parameter ‘scripting_load_script’
extern int scripting_load_script(const char filename[15], int sprite, /bool/int set_sprite);
^
scripting.h:161:12: error: storage class specified for parameter ‘scripting_proc_exists’
extern int scripting_proc_exists(int script, const char* proc);
^
scripting.h:162:12: error: storage class specified for parameter ‘scripting_run_proc’
extern int scripting_run_proc(int script, const char* proc);
^
scripting.h:163:13: error: storage class specified for parameter ‘scripting_resume_script’
extern void scripting_resume_script(int script);
^
scripting.h:164:13: error: storage class specified for parameter ‘scripting_kill_scripts_owned_by’
extern void scripting_kill_scripts_owned_by(int sprite);
^
scripting.h:165:13: error: storage class specified for parameter ‘scripting_kill_all_scripts’
extern void scripting_kill_all_scripts(void);
^
scripting.h:166:13: error: storage class specified for parameter ‘scripting_kill_all_scripts_for_real’
extern void scripting_kill_all_scripts_for_real(void);
^
scripting.h:167:12: error: storage class specified for parameter ‘scripting_add_callback’
extern int scripting_add_callback(const char name[20], int n1, int n2, int script);
^
scripting.h:168:13: error: storage class specified for parameter ‘scripting_kill_callbacks’
extern void scripting_kill_callbacks(int script);
^
scripting.h:169:13: error: storage class specified for parameter ‘scripting_kill_callback’
extern void scripting_kill_callback(int cb);
^
scripting.h:170:13: error: storage class specified for parameter ‘scripting_kill_callbacks_owned_by_script’
extern void scripting_kill_callbacks_owned_by_script(int script);
^
scripting.h:171:13: error: storage class specified for parameter ‘scripting_process_callbacks’
extern void scripting_process_callbacks(void);
^
scripting.h:172:13: error: storage class specified for parameter ‘scripting_kill_script’
extern void scripting_kill_script(int k);
^
scripting.h:173:13: error: storage class specified for parameter ‘scripting_init_scripts’
extern void scripting_init_scripts();
^
In file included from bgm.c:37:0:
game_engine.h:124:3: error: expected specifier-qualifier-list before ‘sp_custom’
sp_custom custom;
^
game_engine.h:41:1: warning: empty declaration [enabled by default]
struct sp
^
game_engine.h:127:1: warning: empty declaration [enabled by default]
struct item_struct
^
game_engine.h:135:1: warning: empty declaration [enabled by default]
struct mydata
^
game_engine.h:147:1: warning: empty declaration [enabled by default]
struct player_info_tile
^
game_engine.h:153:1: warning: empty declaration [enabled by default]
struct player_info
^
game_engine.h:185:18: error: storage class specified for parameter ‘spr’
extern struct sp spr[];
^
game_engine.h:186:27: error: storage class specified for parameter ‘play’
extern struct player_info play;
^
game_engine.h:187:12: error: storage class specified for parameter ‘last_sprite_created’
extern int last_sprite_created;
^
game_engine.h:190:13: error: storage class specified for parameter ‘pvision’
extern int _pvision, *plife, *presult, *pspeed, *ptiming, *plifemax,
^
game_engine.h:190:23: error: storage class specified for parameter ‘plife’
extern int *pvision, *plife, *presult, *pspeed, *ptiming, *plifemax,
^
game_engine.h:190:31: error: storage class specified for parameter ‘presult’
extern int *pvision, *plife, *presult, *pspeed, *ptiming, *plifemax,
^
game_engine.h:190:41: error: storage class specified for parameter ‘pspeed’
extern int *pvision, *plife, *presult, *pspeed, *ptiming, *plifemax,
^
game_engine.h:190:50: error: storage class specified for parameter ‘ptiming’
extern int *pvision, *plife, *presult, *pspeed, *ptiming, *plifemax,
^
game_engine.h:190:60: error: storage class specified for parameter ‘plifemax’
extern int *pvision, *plife, *presult, *pspeed, *ptiming, *plifemax,
^
game_engine.h:191:4: error: storage class specified for parameter ‘pexper’
*pexper, *pmap, *pstrength, *pcur_weapon,_pcur_magic, _pdefense,
^
game_engine.h:191:13: error: storage class specified for parameter ‘pmap’
*pexper, *pmap, *pstrength, *pcur_weapon,_pcur_magic, _pdefense,
^
game_engine.h:191:20: error: storage class specified for parameter ‘pstrength’
*pexper, *pmap, *pstrength, *pcur_weapon,_pcur_magic, _pdefense,
^
game_engine.h:191:32: error: storage class specified for parameter ‘pcur_weapon’
*pexper, *pmap, *pstrength, *pcur_weapon,_pcur_magic, _pdefense,
^
game_engine.h:191:45: error: storage class specified for parameter ‘pcur_magic’
*pexper, *pmap, *pstrength, *pcur_weapon,_pcur_magic, _pdefense,
^
game_engine.h:191:58: error: storage class specified for parameter ‘pdefense’
*pexper, *pmap, *pstrength, *pcur_weapon,_pcur_magic, pdefense,
^
game_engine.h:192:4: error: storage class specified for parameter ‘pgold’
*pgold, *pmagic, *plevel, *plast_text, *pmagic_level;
^
game_engine.h:192:12: error: storage class specified for parameter ‘pmagic’
*pgold, *pmagic, *plevel, *plast_text, *pmagic_level;
^
game_engine.h:192:21: error: storage class specified for parameter ‘plevel’
*pgold, *pmagic, *plevel, *plast_text, *pmagic_level;
^
game_engine.h:192:30: error: storage class specified for parameter ‘plast_text’
*pgold, *pmagic, *plevel, *plast_text, *pmagic_level;
^
game_engine.h:192:43: error: storage class specified for parameter ‘pmagic_level’
*pgold, *pmagic, *plevel, *plast_text, *pmagic_level;
^
game_engine.h:193:13: error: storage class specified for parameter ‘pupdate_status’
extern int *pupdate_status, *pmissile_target, *penemy_sprite,
^
game_engine.h:193:30: error: storage class specified for parameter ‘pmissile_target’
extern int *pupdate_status, *pmissile_target, *penemy_sprite,
^
game_engine.h:193:48: error: storage class specified for parameter ‘penemy_sprite’
extern int *pupdate_status, *pmissile_target, *penemy_sprite,
^
game_engine.h:194:4: error: storage class specified for parameter ‘pmagic_cost’
*pmagic_cost, *pmissle_source;
^
game_engine.h:194:18: error: storage class specified for parameter ‘pmissle_source’
*pmagic_cost, *pmissle_source;
^
game_engine.h:197:12: error: storage class specified for parameter ‘flife’
extern int flife, fexp, fstrength, fdefense, fgold, fmagic,
^
game_engine.h:197:19: error: storage class specified for parameter ‘fexp’
extern int flife, fexp, fstrength, fdefense, fgold, fmagic,
^
game_engine.h:197:25: error: storage class specified for parameter ‘fstrength’
extern int flife, fexp, fstrength, fdefense, fgold, fmagic,
^
game_engine.h:197:36: error: storage class specified for parameter ‘fdefense’
extern int flife, fexp, fstrength, fdefense, fgold, fmagic,
^
game_engine.h:197:46: error: storage class specified for parameter ‘fgold’
extern int flife, fexp, fstrength, fdefense, fgold, fmagic,
^
game_engine.h:197:53: error: storage class specified for parameter ‘fmagic’
extern int flife, fexp, fstrength, fdefense, fgold, fmagic,
^
game_engine.h:198:3: error: storage class specified for parameter ‘fmagic_level’
fmagic_level, flifemax, fraise, last_magic_draw;
^
game_engine.h:198:17: error: storage class specified for parameter ‘flifemax’
fmagic_level, flifemax, fraise, last_magic_draw;
^
game_engine.h:198:27: error: storage class specified for parameter ‘fraise’
fmagic_level, flifemax, fraise, last_magic_draw;
^
game_engine.h:198:35: error: storage class specified for parameter ‘last_magic_draw’
fmagic_level, flifemax, fraise, last_magic_draw;
^
game_engine.h:203:20: error: storage class specified for parameter ‘midi_active’
extern /bool/int midi_active;
^
game_engine.h:204:20: error: storage class specified for parameter ‘sound_on’
extern /bool/int sound_on;
^
game_engine.h:205:20: error: storage class specified for parameter ‘cd_inserted’
extern /bool/int cd_inserted;
^
game_engine.h:209:1: warning: empty declaration [enabled by default]
struct map_info
^
game_engine.h:215:24: error: storage class specified for parameter ‘map’
extern struct map_info map;
^
game_engine.h:220:20: error: storage class specified for parameter ‘joystick’
extern /BOOL/int joystick;
^
game_engine.h:222:22: error: storage class specified for parameter ‘jinfo’
extern SDL_Joystick *jinfo;
^
game_engine.h:223:1: warning: empty declaration [enabled by default]
struct wait_for_button
^
game_engine.h:229:31: error: storage class specified for parameter ‘wait4b’
extern struct wait_for_button wait4b;
^
game_engine.h:232:12: error: storage class specified for parameter ‘last_saved_game’
extern int last_saved_game;
^
game_engine.h:234:14: error: storage class specified for parameter ‘dversion_string’
extern char *dversion_string;
^
game_engine.h:235:12: error: storage class specified for parameter ‘dversion’
extern int dversion;
^
game_engine.h:237:13: error: storage class specified for parameter ‘save_game_info’
extern char save_game_info[LEN_SAVE_GAME_INFO];
^
game_engine.h:238:13: error: storage class specified for parameter ‘current_map’
extern char current_map[50];
^
game_engine.h:239:13: error: storage class specified for parameter ‘current_dat’
extern char current_dat[50];
^
game_engine.h:241:15: error: storage class specified for parameter ‘time_start’
extern time_t time_start;
^
game_engine.h:243:12: error: storage class specified for parameter ‘smooth_follow’
extern int smooth_follow;
^
game_engine.h:245:12: error: storage class specified for parameter ‘get_pan’
extern int get_pan(int h);
^
game_engine.h:246:12: error: storage class specified for parameter ‘get_vol’
extern int get_vol(int h);
^
game_engine.h:250:12: error: storage class specified for parameter ‘process_warp’
extern int process_warp;
^
game_engine.h:251:12: error: storage class specified for parameter ‘process_downcycle’
extern int process_downcycle;
^
game_engine.h:252:12: error: storage class specified for parameter ‘process_upcycle’
extern int process_upcycle;
^
game_engine.h:253:22: error: storage class specified for parameter ‘cycle_clock’
extern unsigned long cycle_clock;
^
game_engine.h:254:12: error: storage class specified for parameter ‘cycle_script’
extern int cycle_script;
^
game_engine.h:256:21: error: storage class specified for parameter ‘dink_base_push’
extern unsigned int dink_base_push;
^
game_engine.h:258:13: error: storage class specified for parameter ‘game_init’
extern void game_init(void);
^
game_engine.h:259:13: error: storage class specified for parameter ‘game_quit’
extern void game_quit(void);
^
game_engine.h:261:15: error: storage class specified for parameter ‘game_GetTicks’
extern Uint32 game_GetTicks(void);
^
game_engine.h:262:13: error: storage class specified for parameter ‘game_set_high_speed’
extern void game_set_high_speed(void);
^
game_engine.h:263:13: error: storage class specified for parameter ‘game_set_normal_speed’
extern void game_set_normal_speed(void);
^
game_engine.h:265:13: error: storage class specified for parameter ‘attach’
extern void attach(void);
^
In file included from bgm.c:38:0:
bgm.h:27:12: error: storage class specified for parameter ‘last_cd_track’
extern int last_cd_track;
^
bgm.h:29:12: error: storage class specified for parameter ‘cdplaying’
extern int cdplaying();
^
bgm.h:30:12: error: storage class specified for parameter ‘killcd’
extern int killcd();
^
bgm.h:31:12: error: storage class specified for parameter ‘PlayCD’
extern int PlayCD(int cd_track);
^
bgm.h:32:12: error: storage class specified for parameter ‘something_playing’
extern int something_playing(void);
^
bgm.h:33:12: error: storage class specified for parameter ‘PlayMidi’
extern int PlayMidi(const char *sFileName);
^
bgm.h:34:12: error: storage class specified for parameter ‘PauseMidi’
extern int PauseMidi();
^
bgm.h:35:12: error: storage class specified for parameter ‘ResumeMidi’
extern int ResumeMidi();
^
bgm.h:36:12: error: storage class specified for parameter ‘StopMidi’
extern int StopMidi();
^
bgm.h:37:12: error: storage class specified for parameter ‘ReplayMidi’
extern int ReplayMidi();
^
bgm.h:38:13: error: storage class specified for parameter ‘check_midi’
extern void check_midi();
^
bgm.h:39:13: error: storage class specified for parameter ‘bgm_init’
extern void bgm_init(void);
^
bgm.h:40:13: error: storage class specified for parameter ‘bgm_quit’
extern void bgm_quit(void);
^
bgm.h:41:13: error: storage class specified for parameter ‘loopmidi’
extern void loopmidi(int loop_midi);
^
In file included from bgm.c:40:0:
str_util.h:32:15: error: storage class specified for parameter ‘strtoupper’
extern void strtoupper(char *s);
^
str_util.h:33:15: error: storage class specified for parameter ‘strtolower’
extern void strtolower(char *s);
^
str_util.h:34:15: error: storage class specified for parameter ‘strcpy_nooverlap’
extern void strcpy_nooverlap(char *dst, char src);
^
str_util.h:35:14: error: storage class specified for parameter ‘asprintf_append’
extern int asprintf_append(char strp, const char* fmt, ...);
^
str_util.h:36:15: error: storage class specified for parameter ‘reverse’
extern void reverse(char st);
^
str_util.h:37:15: error: storage class specified for parameter ‘strchar’
extern void strchar(char *string, char ch);
^
str_util.h:38:16: error: storage class specified for parameter ‘separate_string’
extern char separate_string (const char* str, int num, char sep);
^
str_util.h:39:16: error: storage class specified for parameter ‘get_word’
extern char* get_word(char* line, int word);
^
str_util.h:40:22: error: storage class specified for parameter ‘compare’
extern /bool/int compare(const char orig, const char *comp);
^
str_util.h:41:15: error: storage class specified for parameter ‘replace’
extern void replace(const char find, const char* repl, char line_p);
^
str_util.h:42:15: error: storage class specified for parameter ‘replace_norealloc’
extern void replace_norealloc(const char* find, const char* repl, char* line);
^
str_util.h:43:16: error: storage class specified for parameter ‘latin1_to_utf8’
extern char* latin1_to_utf8(char* source);
^
In file included from bgm.c:41:0:
paths.h:33:15: error: storage class specified for parameter ‘paths_init’
extern void paths_init(char* argv0, char* refdir_opt, char* dmoddir_opt);
^
paths.h:34:22: error: storage class specified for parameter ‘paths_getdmoddir’
extern const char paths_getdmoddir(void);
^
paths.h:35:22: error: storage class specified for parameter ‘paths_getdmodname’
extern const char *paths_getdmodname(void);
^
paths.h:36:22: error: storage class specified for parameter ‘paths_getfallbackdir’
extern const char *paths_getfallbackdir(void);
^
paths.h:37:22: error: storage class specified for parameter ‘paths_getdefaultpkgdatadir’
extern const char *paths_getdefaultpkgdatadir(void);
^
paths.h:38:22: error: storage class specified for parameter ‘paths_getpkgdatadir’
extern const char *paths_getpkgdatadir(void);
^
paths.h:39:22: error: storage class specified for parameter ‘paths_getexedir’
extern const char *paths_getexedir(void);
^
paths.h:40:22: error: storage class specified for parameter ‘paths_getexefile’
extern const char *paths_getexefile(void);
^
paths.h:42:16: error: storage class specified for parameter ‘paths_dmodfile’
extern char paths_dmodfile(const char* file);
^
paths.h:43:16: error: storage class specified for parameter ‘paths_fallbackfile’
extern char* paths_fallbackfile(const char* file);
^
paths.h:44:16: error: storage class specified for parameter ‘paths_defaultpkgdatafile’
extern char* paths_defaultpkgdatafile(const char* file);
^
paths.h:45:16: error: storage class specified for parameter ‘paths_pkgdatafile’
extern char* paths_pkgdatafile(const char* file);
^
paths.h:46:16: error: storage class specified for parameter ‘paths_exedirfile’
extern char* paths_exedirfile(const char* file);
^
paths.h:48:16: error: storage class specified for parameter ‘paths_dmodfile_fopen’
extern FILE* paths_dmodfile_fopen(const char* file, const char* mode);
^
paths.h:49:16: error: storage class specified for parameter ‘paths_fallbackfile_fopen’
extern FILE* paths_fallbackfile_fopen(const char* file, const char* mode);
^
paths.h:50:16: error: storage class specified for parameter ‘paths_defaultpkgdatafile_fopen’
extern FILE* paths_defaultpkgdatafile_fopen(const char* file, const char* mode);
^
paths.h:51:16: error: storage class specified for parameter ‘paths_pkgdatafile_fopen’
extern FILE* paths_pkgdatafile_fopen(const char* file, const char* mode);
^
paths.h:52:16: error: storage class specified for parameter ‘paths_exedirfile_fopen’
extern FILE* paths_exedirfile_fopen(const char* file, const char* mode);
^
paths.h:54:16: error: storage class specified for parameter ‘paths_savegame_fopen’
extern FILE* paths_savegame_fopen(int num, const char* mode);
^
paths.h:55:15: error: storage class specified for parameter ‘paths_quit’
extern void paths_quit(void);
^
In file included from bgm.c:42:0:
log.h:26:13: error: storage class specified for parameter ‘last_debug’
extern char last_debug[200];
^
log.h:27:12: error: storage class specified for parameter ‘debug_mode’
extern int debug_mode;
^
log.h:29:1: warning: empty declaration [enabled by default]
enum log_priority
^
log.h:48:13: error: storage class specified for parameter ‘log_debug_on’
extern void log_debug_on(void);
^
log.h:49:13: error: storage class specified for parameter ‘log_debug_off’
extern void log_debug_off(void);
^
log.h:50:13: error: storage class specified for parameter ‘log_set_priority’
extern void log_set_priority(enum log_priority priority);
^
log.h:51:13: error: storage class specified for parameter ‘log_output’
extern void log_output(enum log_priority priority, const char fmt, ...);
^
bgm.c:53:16: error: storage class specified for parameter ‘cdrom’
static SDL_CD *cdrom = NULL;
^
bgm.c:53:1: error: parameter ‘cdrom’ is initialized
static SDL_CD *cdrom = NULL;
^
bgm.c:57:19: error: storage class specified for parameter ‘music_data’
static Mix_Music *music_data = NULL;
^
bgm.c:57:1: error: parameter ‘music_data’ is initialized
static Mix_Music *music_data = NULL;
^
bgm.c:58:14: error: storage class specified for parameter ‘last_midi’
static char last_midi = NULL;
^
bgm.c:58:1: error: parameter ‘last_midi’ is initialized
static char* last_midi = NULL;
^
bgm.c:59:1: error: parameter ‘last_cd_track’ is initialized
int last_cd_track = 0;
^
bgm.c:59:5: error: redefinition of parameter ‘last_cd_track’
int last_cd_track = 0;
^
In file included from bgm.c:38:0:
bgm.h:27:12: note: previous definition of ‘last_cd_track’ was here
extern int last_cd_track;
^
bgm.c:60:12: error: storage class specified for parameter ‘loop_midi’
static int loop_midi = 0;
^
bgm.c:60:1: error: parameter ‘loop_midi’ is initialized
static int loop_midi = 0;
^
bgm.c:72:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
bgm.c:82:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
bgm.c:92:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
bgm.c:117:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
bgm.c:126:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
bgm.c:135:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
bgm.c:241:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
bgm.c:253:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
bgm.c:266:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
bgm.c:275:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
bgm.c:321:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
bgm.c:361:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
bgm.c:381:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
In file included from sp_custom.h:26:0,
from game_engine.h:34,
from bgm.c:37:
../gnulib/lib/hash.h:72:8: error: old-style parameter declarations in prototyped function definition
size_t hash_get_n_buckets (const Hash_table _) _GL_ATTRIBUTE_PURE;
^
../gnulib/lib/hash.h:72:1: error: parameter name omitted
size_t hash_get_n_buckets (const Hash_table *) GL_ATTRIBUTE_PURE;
^
bgm.c:386:1: error: expected ‘{’ at end of input
}
^
bgm.c:386:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
Makefile:594: recipe for target 'bgm.o' failed
make[2]: ** [bgm.o] Error 1
make[2]: Leaving directory '/home/shevek/src/freedink-lua/src'
Makefile:417: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/shevek/src/freedink-lua'
Makefile:357: recipe for target 'all' failed
make: *** [all] Error 2
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.