summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Unbehaun <frostworks@gmx.de>2009-08-29 12:43:52 +0200
committerMarcel Unbehaun <frostworks@gmx.de>2009-08-29 12:43:52 +0200
commit21be9cec626ce338d41ca949bb4c07fc1aece1d4 (patch)
treea630f6684715dd20b21da7b8ef1677f51d7e77cc /games-action
parent(games-arcade/atomorun2008) rm files/atomorun2008-1.0.diff (diff)
downloadgamerlay-21be9cec626ce338d41ca949bb4c07fc1aece1d4.tar.gz
gamerlay-21be9cec626ce338d41ca949bb4c07fc1aece1d4.tar.bz2
gamerlay-21be9cec626ce338d41ca949bb4c07fc1aece1d4.zip
(games-action/area2048) new /Manifest
(games-action/area2048) updated /area2048-1.03.ebuild (games-action/area2048) added /files/area2048-1.03-homedir.patch (games-action/area2048) added /files/area2048-1.03-import.patch (games-action/area2048) added /files/area2048-1.03-makefile.patch (games-action/area2048) added /files/area2048-1.03-src.patch (games-action/area2048) removed /files/area2048-1.03.diff
Diffstat (limited to 'games-action')
-rw-r--r--games-action/area2048/Manifest7
-rw-r--r--games-action/area2048/area2048-1.03.ebuild15
-rw-r--r--games-action/area2048/files/area2048-1.03-homedir.patch157
-rw-r--r--games-action/area2048/files/area2048-1.03-import.patch1230
-rw-r--r--games-action/area2048/files/area2048-1.03-makefile.patch22
-rw-r--r--games-action/area2048/files/area2048-1.03-src.patch1217
-rw-r--r--games-action/area2048/files/area2048-1.03.diff2469
7 files changed, 2636 insertions, 2481 deletions
diff --git a/games-action/area2048/Manifest b/games-action/area2048/Manifest
index 7fe2a0e..69d2ff7 100644
--- a/games-action/area2048/Manifest
+++ b/games-action/area2048/Manifest
@@ -1,6 +1,9 @@
-AUX area2048-1.03.diff 74974 RMD160 3d0455d0e8116093f3e9df459b07bc529f26fcf8 SHA1 9a9e4d7ad1459d011933c28b7faf2fa2a08b2d5e SHA256 29c17c3fa78c7960364e3dae7245557b8089983ae3d8ea9d39be9de348830841
+AUX area2048-1.03-homedir.patch 3773 RMD160 607af02c9451d02ceab0601ef2df0b5efe357d5b SHA1 cc36c1c81337af96d9b844476e44e3dbb735620e SHA256 8000bc681390c5c0a0794743fd01ebed4e309c0bbb947f2e1148c7eeae57a789
+AUX area2048-1.03-import.patch 34036 RMD160 e665f10c7c97bd818a60602916c00c65fab48361 SHA1 901040f15fc6b4a50a6eb0a31a2925f1e7fddd5d SHA256 224d0f5b89016f1210bf3b401d8689e21977511afb073efdd844f4c264297a69
+AUX area2048-1.03-makefile.patch 657 RMD160 ae9771dfe591fd10d1409c2aaac408579dd53461 SHA1 1811bc53d072704feb69496200fb6a43b92b1806 SHA256 56026f4d6c66dc3f96338dcbc08af49434dc4f9f19e46795102ef499cc581aa4
+AUX area2048-1.03-src.patch 39099 RMD160 804e74de7e24e03c089640919dd54219c1369c43 SHA1 9d3cde2930b66bc475949831f4add3e3e6488587 SHA256 500e5c4e4e4a689c2c6116a38205b315f38a1e2813997c145e8bd3b4507963fb
AUX area2048.png 2508 RMD160 ed2b930a82af71092c62512178c1a039eb8f8a3e SHA1 624afa5b4714f8df8dc463b349c316d8343beae3 SHA256 ea0d0b4be0892bc8a8fe02ae641e8aa1e6806c186eb59006a1d2cec6f1064ca8
DIST a2k.zip 5909080 RMD160 b41d3df704f0eea124b5e67cac7225d9db117b72 SHA1 e8fd183dd844b584a6c7cb8f87253e90e2547606 SHA256 c183d9b1c170249f9c0d176d527d84d4dc93b556ee59f1e0a3f3216fcb4e0426
DIST a2k_src.zip 176719 RMD160 1f68dd97b0cff8d7e7e29117fcbe29aaf2518fed SHA1 8cb42a9879f68d8197cc598434b03096561d824e SHA256 ac574736f0e62b684696c4120e363d22f9838c79bfa56a6ff6b87c1e79c9358b
-EBUILD area2048-1.03.ebuild 2135 RMD160 377e62799e89f99e67a7c6be98fc2286e8c1f9ad SHA1 7927c66558b1b9d7ff6fc38368b717e6d51686b2 SHA256 cc166e918c05e00826b7833f47db170083d72372b6eb766cf679b7bc352c9a1c
+EBUILD area2048-1.03.ebuild 1834 RMD160 2e0f0c5a781b2c5c46544fda66a73d7b80ad6901 SHA1 efb16006490b5be60a00639d442bb4598637fd3b SHA256 b6b90a6b45c668d889cd5c3e7611602a4dbd7d373389b54b89a008fdfa657675
MISC metadata.xml 249 RMD160 220cde0fc1a8d7d355705f0f6772bd8d77cdc17a SHA1 34b33eb8d24cd8bfef2ddfb8e80334fd77cc9488 SHA256 3875fd5008d7f5bfe7f3cf7bf330c209a5034f5988d37c1699fb3be35a7be906
diff --git a/games-action/area2048/area2048-1.03.ebuild b/games-action/area2048/area2048-1.03.ebuild
index 4888239..93db906 100644
--- a/games-action/area2048/area2048-1.03.ebuild
+++ b/games-action/area2048/area2048-1.03.ebuild
@@ -22,7 +22,7 @@ IUSE=""
RDEPEND="media-libs/libsdl
media-libs/mesa
media-libs/sdl-mixer
- dev-libs/bulletss"
+ dev-libs/libbulletml"
DEPEND="${RDEPEND}"
S=${WORKDIR}/${MY_PN}
@@ -36,7 +36,10 @@ src_unpack(){
}
src_prepare(){
- epatch "${FILESDIR}"/${P}.diff
+ epatch "${FILESDIR}"/${P}-import.patch
+ epatch "${FILESDIR}"/${P}-src.patch
+ epatch "${FILESDIR}"/${P}-makefile.patch
+ epatch "${FILESDIR}"/${P}-homedir.patch
sed -i \
-e 's:"\(icon.bmp[^"]*\)":"'${GAMES_DATADIR}'/'${PN}'/\1":g' -i a2k_src/src/util_pad.d \
-e 's:"\(title.bmp[^"]*\)":"'${GAMES_DATADIR}'/'${PN}'/\1":g' -i a2k_src/src/init.d \
@@ -45,8 +48,6 @@ src_prepare(){
-e 's:"\(se_[^"]*\)":"'${GAMES_DATADIR}'/'${PN}'/\1":g' -i a2k_src/src/init.d \
-e 's:"\(voice[^"]*\)":"'${GAMES_DATADIR}'/'${PN}'/\1":g' -i a2k_src/src/init.d \
-e 's:"\(bullet[^"]*\)":"'${GAMES_DATADIR}'/'${PN}'/\1":g' -i a2k_src/src/init.d \
- -e 's:"\(score.dat[^"]*\)":"'${GAMES_STATEDIR}'/'a2k'\1":g' -i a2k_src/src/init.d \
- -e 's:"\(config.dat[^"]*\)":"'${GAMES_STATEDIR}'/'a2k'\1":g' -i a2k_src/src/init.d \
|| die "sed failed"
}
@@ -54,12 +55,6 @@ src_install() {
dogamesbin ${PN} || die "dogamesbin failed"
local datadir="${GAMES_DATADIR}"/${PN}
- dodir "${GAMES_STATEDIR}"
- touch ${D}/"${GAMES_STATEDIR}"/a2kscore.dat || die "touch failed"
- fperms 660 "${GAMES_STATEDIR}"/a2kscore.dat
- touch ${D}/"${GAMES_STATEDIR}"/a2kconfig.dat || die "touch failed"
- fperms 660 "${GAMES_STATEDIR}"/a2kconfig.dat
-
dodir ${datadir}
insinto "${GAMES_DATADIR}"/${PN}
doins *.xml *.bmp *.ogg *.wav || die
diff --git a/games-action/area2048/files/area2048-1.03-homedir.patch b/games-action/area2048/files/area2048-1.03-homedir.patch
new file mode 100644
index 0000000..f18a52d
--- /dev/null
+++ b/games-action/area2048/files/area2048-1.03-homedir.patch
@@ -0,0 +1,157 @@
+diff -Naur a2k-o/a2k_src/src/gctrl.d a2k/a2k_src/src/gctrl.d
+--- a2k-o/a2k_src/src/gctrl.d 2005-01-18 02:03:08.000000000 +0100
++++ a2k/a2k_src/src/gctrl.d 2009-08-29 12:21:15.000000000 +0200
+@@ -6,6 +6,12 @@
+ 2004/04/08 jumpei isshiki
+ */
+
++private import SDL;
++private import std.stdio;
++private import std.math;
++private import std.file;
++private import std.path;
++private import std.string;
+ private import std.random;
+ private import util_snd;
+ private import util_pad;
+@@ -72,6 +78,30 @@
+ private float rank_max;
+ private float rank_min;
+
++public static char[] pref_dir() {
++
++ char * home = getenv("HOME");
++
++ if (home is null)
++
++ throw new Error("HOME environment variable undefined");
++
++ char[] dir = std.string.toString(home) ~ "/.area2048";
++
++ try {
++
++ mkdir(dir);
++
++ } catch (FileException e) {
++
++ }
++
++ return dir;
++
++}
++
++
++
+ void TSKgctrl(int id)
+ {
+ switch(TskBuf[id].step){
+diff -Naur a2k-o/a2k_src/src/init.d a2k/a2k_src/src/init.d
+--- a2k-o/a2k_src/src/init.d 2009-08-29 12:15:08.000000000 +0200
++++ a2k/a2k_src/src/init.d 2009-08-29 12:08:58.000000000 +0200
+@@ -98,11 +98,11 @@
+ auto File fd = new File;
+
+ try {
+- fd.open("score.dat");
++ fd.open(pref_dir() ~ "/" ~ "score.dat");
+ if(fd.size() != 12){
+ fd.close();
+ printf("score.dat initialized");
+- fd.create("score.dat");
++ fd.create(pref_dir() ~ "/" ~ "score.dat");
+ fd.write(high_easy);
+ fd.write(high_normal);
+ fd.write(high_hard);
+@@ -113,7 +113,7 @@
+ }
+ } catch (Error e) {
+ printf("score.dat initialized");
+- fd.create("score.dat");
++ fd.create(pref_dir() ~ "/" ~ "score.dat");
+ fd.write(high_easy);
+ fd.write(high_normal);
+ fd.write(high_hard);
+@@ -122,12 +122,12 @@
+ fd.close();
+ }
+
+- fd.open("config.dat");
++ fd.open(pref_dir() ~ "/" ~ "config.dat");
+ try {
+ if(fd.size() != 12){
+ fd.close();
+ printf("config.dat initialized");
+- fd.create("config.dat");
++ fd.create(pref_dir() ~ "/" ~ "config.dat");
+ fd.write(pad_type);
+ fd.write(vol_se);
+ fd.write(vol_music);
+@@ -140,7 +140,7 @@
+ }
+ } catch (Error e) {
+ printf("config.dat initialized");
+- fd.create("config.dat");
++ fd.create(pref_dir() ~ "/" ~ "config.dat");
+ fd.write(pad_type);
+ fd.write(vol_se);
+ fd.write(vol_music);
+@@ -153,13 +153,13 @@
+ void configSAVE()
+ {
+ auto File fd = new File;
+- fd.create("score.dat");
++ fd.create(pref_dir() ~ "/" ~ "score.dat");
+ fd.write(high_easy);
+ fd.write(high_normal);
+ fd.write(high_hard);
+ fd.close();
+
+- fd.create("config.dat");
++ fd.create(pref_dir() ~ "/" ~ "config.dat");
+ fd.write(pad_type);
+ fd.write(vol_se);
+ fd.write(vol_music);
+diff -Naur a2k-o/a2k_src/src/main.d a2k/a2k_src/src/main.d
+--- a2k-o/a2k_src/src/main.d 2009-08-29 12:15:08.000000000 +0200
++++ a2k/a2k_src/src/main.d 2009-08-29 12:39:56.000000000 +0200
+@@ -7,7 +7,7 @@
+ */
+
+ //private import std.c.windows.windows;
+-private import SDL;
++private import SDL;
+ private import SDL_Keysym;
+ private import opengl;
+ private import util_sdl;
+@@ -36,8 +36,8 @@
+ extern (Windows)
+ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
+ {
+-*/
+-public int main(char[][] args) {
++*/
++public int main(char[][] args) {
+ int result;
+ /*
+ gc_init();
+@@ -45,10 +45,10 @@
+
+ try{
+ _moduleCtor();
+- _moduleUnitTests();
++ _moduleUnitTests();
+ */
+ result = boot();
+-/*
++/*
+ }catch (Object o){
+ MessageBoxA(null, cast(char*)o.toString(), "Error", MB_OK | MB_ICONEXCLAMATION);
+ result = 0;
+@@ -103,6 +103,7 @@
+ initTSK();
+ initASCII();
+ bulletINIT();
++ configSAVE();
+ configINIT();
+
+ game_exec = 1;
diff --git a/games-action/area2048/files/area2048-1.03-import.patch b/games-action/area2048/files/area2048-1.03-import.patch
new file mode 100644
index 0000000..0ee90c2
--- /dev/null
+++ b/games-action/area2048/files/area2048-1.03-import.patch
@@ -0,0 +1,1230 @@
+diff -Naur a2k_src/import/opengl.d a2k_src-p/import/opengl.d
+--- a2k_src/import/opengl.d 2008-02-12 22:20:18.000000000 +0100
++++ a2k_src-p/import/opengl.d 2009-08-27 15:18:28.000000000 +0200
+@@ -1,16 +1,6 @@
+-version (Win32) {
+- import std.c.windows.windows;
+-}
+-extern(System):
+-
+-/* Please use this code with old D compiler.
+-version (Win32) {
+- extern(Windows):
+-}
+-else {
++
+ extern(C):
+-}
+-*/
++
+
+ alias uint GLenum;
+ alias ubyte GLboolean;
+@@ -1122,7 +1112,7 @@
+ /*************************************************************/
+
+ void /*APIENTRY*/glAccum (GLenum op, GLfloat value);
+-void /*APIENTRY*/glAlphaFunc (GLenum func, GLclampf cref);
++void /*APIENTRY*/glAlphaFunc (GLenum func, GLclampf);
+ GLboolean /*APIENTRY*/glAreTexturesResident (GLsizei n, GLuint *textures, GLboolean *residences);
+ void /*APIENTRY*/glArrayElement (GLint i);
+ void /*APIENTRY*/glBegin (GLenum mode);
+@@ -1375,7 +1365,7 @@
+ void /*APIENTRY*/glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
+ void /*APIENTRY*/glSelectBuffer (GLsizei size, GLuint *buffer);
+ void /*APIENTRY*/glShadeModel (GLenum mode);
+-void /*APIENTRY*/glStencilFunc (GLenum func, GLint cref, GLuint mask);
++void /*APIENTRY*/glStencilFunc (GLenum func, GLint, GLuint mask);
+ void /*APIENTRY*/glStencilMask (GLuint mask);
+ void /*APIENTRY*/glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
+ void /*APIENTRY*/glTexCoord1d (GLdouble s);
+diff -Naur a2k_src/import/openglu.d a2k_src-p/import/openglu.d
+--- a2k_src/import/openglu.d 2008-02-12 22:20:14.000000000 +0100
++++ a2k_src-p/import/openglu.d 2009-08-27 15:18:28.000000000 +0200
+@@ -1,15 +1,6 @@
+-import opengl;
+
+-extern(System):
+-
+-/* Please use this code with old D compiler.
+-version (Win32) {
+- extern(Windows):
+-}
+-else {
+ extern(C):
+-}
+-*/
++
+
+ GLubyte* gluErrorString (
+ GLenum errCode);
+diff -Naur a2k_src/import/SDL_active.d a2k_src-p/import/SDL_active.d
+--- a2k_src/import/SDL_active.d 2006-07-26 23:24:30.000000000 +0200
++++ a2k_src-p/import/SDL_active.d 2009-08-27 15:18:28.000000000 +0200
+@@ -22,7 +22,7 @@
+
+ /* Include file for SDL application focus event handling */
+
+-public import SDL_types;
++import SDL_types;
+
+ extern(C):
+
+diff -Naur a2k_src/import/SDL_audio.d a2k_src-p/import/SDL_audio.d
+--- a2k_src/import/SDL_audio.d 2006-07-26 23:24:40.000000000 +0200
++++ a2k_src-p/import/SDL_audio.d 2009-08-27 15:18:28.000000000 +0200
+@@ -20,10 +20,10 @@
+ slouken@devolution.com
+ */
+
+-public import SDL_types;
+-public import SDL_error;
+-public import SDL_rwops;
+-public import SDL_byteorder;
++import SDL_types;
++import SDL_error;
++import SDL_rwops;
++import SDL_byteorder;
+
+ extern(C):
+
+diff -Naur a2k_src/import/SDL_cdrom.d a2k_src-p/import/SDL_cdrom.d
+--- a2k_src/import/SDL_cdrom.d 2006-07-26 23:24:42.000000000 +0200
++++ a2k_src-p/import/SDL_cdrom.d 2009-08-27 15:18:28.000000000 +0200
+@@ -22,7 +22,7 @@
+
+ /* This is the CD-audio control API for Simple DirectMedia Layer */
+
+-public import SDL_types;
++import SDL_types;
+
+ extern(C):
+
+diff -Naur a2k_src/import/SDL.d a2k_src-p/import/SDL.d
+--- a2k_src/import/SDL.d 2006-07-26 23:24:12.000000000 +0200
++++ a2k_src-p/import/SDL.d 2009-08-27 15:18:28.000000000 +0200
+@@ -33,60 +33,60 @@
+ public import SDL_byteorder;
+ public import SDL_Version;
+
+-extern(C):
+-
+-/* As of version 0.5, SDL is loaded dynamically into the application */
+-
+-/* These are the flags which may be passed to SDL_Init() -- you should
+- specify the subsystems which you will be using in your application.
+-*/
+-const uint SDL_INIT_TIMER = 0x00000001;
+-const uint SDL_INIT_AUDIO = 0x00000010;
+-const uint SDL_INIT_VIDEO = 0x00000020;
+-const uint SDL_INIT_CDROM = 0x00000100;
+-const uint SDL_INIT_JOYSTICK = 0x00000200;
+-const uint SDL_INIT_NOPARACHUTE = 0x00100000; /* Don't catch fatal signals */
+-const uint SDL_INIT_EVENTTHREAD = 0x01000000; /* Not supported on all OS's */
+-const uint SDL_INIT_EVERYTHING = 0x0000FFFF;
+-
+-/* This function loads the SDL dynamically linked library and initializes
+- * the subsystems specified by 'flags' (and those satisfying dependencies)
+- * Unless the SDL_INIT_NOPARACHUTE flag is set, it will install cleanup
+- * signal handlers for some commonly ignored fatal signals (like SIGSEGV)
+- */
+-int SDL_Init(Uint32 flags);
+-
+-/* This function initializes specific SDL subsystems */
+-int SDL_InitSubSystem(Uint32 flags);
+-
+-/* This function cleans up specific SDL subsystems */
+-void SDL_QuitSubSystem(Uint32 flags);
+-
+-/* This function returns mask of the specified subsystems which have
+- been initialized.
+- If 'flags' is 0, it returns a mask of all initialized subsystems.
+-*/
+-Uint32 SDL_WasInit(Uint32 flags);
+-
+-/* This function cleans up all initialized subsystems and unloads the
+- * dynamically linked library. You should call it upon all exit conditions.
+- */
+-void SDL_Quit();
+-
+-void SDL_SetModuleHandle(void *hInst);
+-//extern(Windows) void* GetModuleHandle(char*);
+-extern(Windows) void* GetModuleHandleA(char*);
+-
+-static this()
+-{
+- /* Load SDL dynamic link library */
+- if (SDL_Init(SDL_INIT_NOPARACHUTE) < 0)
+- throw new Error("Error loading SDL");
+-// SDL_SetModuleHandle(GetModuleHandle(null));
+- SDL_SetModuleHandle(GetModuleHandleA(null));
+-}
+-
+-static ~this()
+-{
+- SDL_Quit();
+-}
++extern(C):
++
++/* As of version 0.5, SDL is loaded dynamically into the application */
++
++/* These are the flags which may be passed to SDL_Init() -- you should
++ specify the subsystems which you will be using in your application.
++*/
++const uint SDL_INIT_TIMER = 0x00000001;
++const uint SDL_INIT_AUDIO = 0x00000010;
++const uint SDL_INIT_VIDEO = 0x00000020;
++const uint SDL_INIT_CDROM = 0x00000100;
++const uint SDL_INIT_JOYSTICK = 0x00000200;
++const uint SDL_INIT_NOPARACHUTE = 0x00100000; /* Don't catch fatal signals */
++const uint SDL_INIT_EVENTTHREAD = 0x01000000; /* Not supported on all OS's */
++const uint SDL_INIT_EVERYTHING = 0x0000FFFF;
++
++/* This function loads the SDL dynamically linked library and initializes
++ * the subsystems specified by 'flags' (and those satisfying dependencies)
++ * Unless the SDL_INIT_NOPARACHUTE flag is set, it will install cleanup
++ * signal handlers for some commonly ignored fatal signals (like SIGSEGV)
++ */
++int SDL_Init(Uint32 flags);
++
++/* This function initializes specific SDL subsystems */
++int SDL_InitSubSystem(Uint32 flags);
++
++/* This function cleans up specific SDL subsystems */
++void SDL_QuitSubSystem(Uint32 flags);
++
++/* This function returns mask of the specified subsystems which have
++ been initialized.
++ If 'flags' is 0, it returns a mask of all initialized subsystems.
++*/
++Uint32 SDL_WasInit(Uint32 flags);
++
++/* This function cleans up all initialized subsystems and unloads the
++ * dynamically linked library. You should call it upon all exit conditions.
++ */
++void SDL_Quit();
++
++/+
++void SDL_SetModuleHandle(void *hInst);
++extern(Windows) void* GetModuleHandle(char*);
++
++static this()
++{
++ /* Load SDL dynamic link library */
++ if (SDL_Init(SDL_INIT_NOPARACHUTE) < 0)
++ throw new Error("Error loading SDL");
++ SDL_SetModuleHandle(GetModuleHandle(null));
++}
++
++static ~this()
++{
++ SDL_Quit();
++}
+++/
+diff -Naur a2k_src/import/SDL_endian.d a2k_src-p/import/SDL_endian.d
+--- a2k_src/import/SDL_endian.d 2006-09-14 01:57:50.000000000 +0200
++++ a2k_src-p/import/SDL_endian.d 2009-08-27 15:18:28.000000000 +0200
+@@ -34,9 +34,9 @@
+ and other data sources.
+ */
+
+-public import SDL_types;
+-public import SDL_rwops;
+-public import SDL_byteorder;
++import SDL_types;
++import SDL_rwops;
++import SDL_byteorder;
+
+ extern(C):
+
+@@ -47,7 +47,7 @@
+ */
+
+ Uint16 SDL_Swap16(Uint16 D) {
+- return cast(Uint16)((D<<8)|(D>>8));
++ return((D<<8)|(D>>8));
+ }
+
+ Uint32 SDL_Swap32(Uint32 D) {
+diff -Naur a2k_src/import/SDL_events.d a2k_src-p/import/SDL_events.d
+--- a2k_src/import/SDL_events.d 2006-07-26 23:25:46.000000000 +0200
++++ a2k_src-p/import/SDL_events.d 2009-08-27 15:18:28.000000000 +0200
+@@ -22,12 +22,12 @@
+
+ /* Include file for SDL event handling */
+
+-public import SDL_types;
+-public import SDL_active;
+-public import SDL_keyboard;
+-public import SDL_mouse;
+-public import SDL_joystick;
+-public import SDL_syswm;
++import SDL_types;
++import SDL_active;
++import SDL_keyboard;
++import SDL_mouse;
++import SDL_joystick;
++import SDL_syswm;
+
+ extern(C):
+
+@@ -304,7 +304,7 @@
+ If 'state' is set to SDL_QUERY, SDL_EventState() will return the
+ current processing state of the specified event.
+ */
+-const int SDL_QUERY = -1;
++const uint SDL_QUERY = -1;
+ const uint SDL_IGNORE = 0;
+ const uint SDL_DISABLE = 0;
+ const uint SDL_ENABLE = 1;
+diff -Naur a2k_src/import/SDL_image.d a2k_src-p/import/SDL_image.d
+--- a2k_src/import/SDL_image.d 2006-07-26 23:24:58.000000000 +0200
++++ a2k_src-p/import/SDL_image.d 2009-08-27 15:18:28.000000000 +0200
+@@ -26,7 +26,7 @@
+
+ /* A simple library to load images of various formats as SDL surfaces */
+
+-public import SDL;
++import SDL;
+
+ extern (C) {
+
+diff -Naur a2k_src/import/SDL_joystick.d a2k_src-p/import/SDL_joystick.d
+--- a2k_src/import/SDL_joystick.d 2006-07-26 23:25:10.000000000 +0200
++++ a2k_src-p/import/SDL_joystick.d 2009-08-27 15:18:28.000000000 +0200
+@@ -22,7 +22,7 @@
+
+ /* Include file for SDL joystick event handling */
+
+-public import SDL_types;
++import SDL_types;
+
+ extern(C):
+
+diff -Naur a2k_src/import/SDL_keyboard.d a2k_src-p/import/SDL_keyboard.d
+--- a2k_src/import/SDL_keyboard.d 2006-07-26 23:25:14.000000000 +0200
++++ a2k_src-p/import/SDL_keyboard.d 2009-08-27 15:18:28.000000000 +0200
+@@ -22,11 +22,11 @@
+
+ /* Include file for SDL keyboard event handling */
+
+-public import SDL_types;
++import SDL_types;
+ // !!! A hack! struct SDL_keysym is defined in this module,
+ // !!! so we need to resolve the nameclash...
+ // !!! Definitely won't work on *NIX but for now will do.
+-public import SDL_Keysym;
++import SDL_Keysym;
+
+ extern(C):
+
+diff -Naur a2k_src/import/SDL_keysym.d a2k_src-p/import/SDL_keysym.d
+--- a2k_src/import/SDL_keysym.d 2002-01-04 23:31:22.000000000 +0100
++++ a2k_src-p/import/SDL_keysym.d 1970-01-01 01:00:00.000000000 +0100
+@@ -1,308 +0,0 @@
+-/*
+- SDL - Simple DirectMedia Layer
+- Copyright (C) 1997, 1998, 1999, 2000, 2001 Sam Lantinga
+-
+- This library is free software; you can redistribute it and/or
+- modify it under the terms of the GNU Library General Public
+- License as published by the Free Software Foundation; either
+- version 2 of the License, or (at your option) any later version.
+-
+- This library 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
+- Library General Public License for more details.
+-
+- You should have received a copy of the GNU Library General Public
+- License along with this library; if not, write to the Free
+- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+-
+- Sam Lantinga
+- slouken@devolution.com
+-*/
+-
+-/* What we really want is a mapping of every raw key on the keyboard.
+- To support international keyboards, we use the range 0xA1 - 0xFF
+- as international virtual keycodes. We'll follow in the footsteps of X11...
+- The names of the keys
+- */
+-
+-alias int SDLKey;
+-enum {
+- /* The keyboard syms have been cleverly chosen to map to ASCII */
+- SDLK_UNKNOWN = 0,
+- SDLK_FIRST = 0,
+- SDLK_BACKSPACE = 8,
+- SDLK_TAB = 9,
+- SDLK_CLEAR = 12,
+- SDLK_RETURN = 13,
+- SDLK_PAUSE = 19,
+- SDLK_ESCAPE = 27,
+- SDLK_SPACE = 32,
+- SDLK_EXCLAIM = 33,
+- SDLK_QUOTEDBL = 34,
+- SDLK_HASH = 35,
+- SDLK_DOLLAR = 36,
+- SDLK_AMPERSAND = 38,
+- SDLK_QUOTE = 39,
+- SDLK_LEFTPAREN = 40,
+- SDLK_RIGHTPAREN = 41,
+- SDLK_ASTERISK = 42,
+- SDLK_PLUS = 43,
+- SDLK_COMMA = 44,
+- SDLK_MINUS = 45,
+- SDLK_PERIOD = 46,
+- SDLK_SLASH = 47,
+- SDLK_0 = 48,
+- SDLK_1 = 49,
+- SDLK_2 = 50,
+- SDLK_3 = 51,
+- SDLK_4 = 52,
+- SDLK_5 = 53,
+- SDLK_6 = 54,
+- SDLK_7 = 55,
+- SDLK_8 = 56,
+- SDLK_9 = 57,
+- SDLK_COLON = 58,
+- SDLK_SEMICOLON = 59,
+- SDLK_LESS = 60,
+- SDLK_EQUALS = 61,
+- SDLK_GREATER = 62,
+- SDLK_QUESTION = 63,
+- SDLK_AT = 64,
+- /*
+- Skip uppercase letters
+- */
+- SDLK_LEFTBRACKET = 91,
+- SDLK_BACKSLASH = 92,
+- SDLK_RIGHTBRACKET = 93,
+- SDLK_CARET = 94,
+- SDLK_UNDERSCORE = 95,
+- SDLK_BACKQUOTE = 96,
+- SDLK_a = 97,
+- SDLK_b = 98,
+- SDLK_c = 99,
+- SDLK_d = 100,
+- SDLK_e = 101,
+- SDLK_f = 102,
+- SDLK_g = 103,
+- SDLK_h = 104,
+- SDLK_i = 105,
+- SDLK_j = 106,
+- SDLK_k = 107,
+- SDLK_l = 108,
+- SDLK_m = 109,
+- SDLK_n = 110,
+- SDLK_o = 111,
+- SDLK_p = 112,
+- SDLK_q = 113,
+- SDLK_r = 114,
+- SDLK_s = 115,
+- SDLK_t = 116,
+- SDLK_u = 117,
+- SDLK_v = 118,
+- SDLK_w = 119,
+- SDLK_x = 120,
+- SDLK_y = 121,
+- SDLK_z = 122,
+- SDLK_DELETE = 127,
+- /* End of ASCII mapped keysyms */
+-
+- /* International keyboard syms */
+- SDLK_WORLD_0 = 160, /* 0xA0 */
+- SDLK_WORLD_1 = 161,
+- SDLK_WORLD_2 = 162,
+- SDLK_WORLD_3 = 163,
+- SDLK_WORLD_4 = 164,
+- SDLK_WORLD_5 = 165,
+- SDLK_WORLD_6 = 166,
+- SDLK_WORLD_7 = 167,
+- SDLK_WORLD_8 = 168,
+- SDLK_WORLD_9 = 169,
+- SDLK_WORLD_10 = 170,
+- SDLK_WORLD_11 = 171,
+- SDLK_WORLD_12 = 172,
+- SDLK_WORLD_13 = 173,
+- SDLK_WORLD_14 = 174,
+- SDLK_WORLD_15 = 175,
+- SDLK_WORLD_16 = 176,
+- SDLK_WORLD_17 = 177,
+- SDLK_WORLD_18 = 178,
+- SDLK_WORLD_19 = 179,
+- SDLK_WORLD_20 = 180,
+- SDLK_WORLD_21 = 181,
+- SDLK_WORLD_22 = 182,
+- SDLK_WORLD_23 = 183,
+- SDLK_WORLD_24 = 184,
+- SDLK_WORLD_25 = 185,
+- SDLK_WORLD_26 = 186,
+- SDLK_WORLD_27 = 187,
+- SDLK_WORLD_28 = 188,
+- SDLK_WORLD_29 = 189,
+- SDLK_WORLD_30 = 190,
+- SDLK_WORLD_31 = 191,
+- SDLK_WORLD_32 = 192,
+- SDLK_WORLD_33 = 193,
+- SDLK_WORLD_34 = 194,
+- SDLK_WORLD_35 = 195,
+- SDLK_WORLD_36 = 196,
+- SDLK_WORLD_37 = 197,
+- SDLK_WORLD_38 = 198,
+- SDLK_WORLD_39 = 199,
+- SDLK_WORLD_40 = 200,
+- SDLK_WORLD_41 = 201,
+- SDLK_WORLD_42 = 202,
+- SDLK_WORLD_43 = 203,
+- SDLK_WORLD_44 = 204,
+- SDLK_WORLD_45 = 205,
+- SDLK_WORLD_46 = 206,
+- SDLK_WORLD_47 = 207,
+- SDLK_WORLD_48 = 208,
+- SDLK_WORLD_49 = 209,
+- SDLK_WORLD_50 = 210,
+- SDLK_WORLD_51 = 211,
+- SDLK_WORLD_52 = 212,
+- SDLK_WORLD_53 = 213,
+- SDLK_WORLD_54 = 214,
+- SDLK_WORLD_55 = 215,
+- SDLK_WORLD_56 = 216,
+- SDLK_WORLD_57 = 217,
+- SDLK_WORLD_58 = 218,
+- SDLK_WORLD_59 = 219,
+- SDLK_WORLD_60 = 220,
+- SDLK_WORLD_61 = 221,
+- SDLK_WORLD_62 = 222,
+- SDLK_WORLD_63 = 223,
+- SDLK_WORLD_64 = 224,
+- SDLK_WORLD_65 = 225,
+- SDLK_WORLD_66 = 226,
+- SDLK_WORLD_67 = 227,
+- SDLK_WORLD_68 = 228,
+- SDLK_WORLD_69 = 229,
+- SDLK_WORLD_70 = 230,
+- SDLK_WORLD_71 = 231,
+- SDLK_WORLD_72 = 232,
+- SDLK_WORLD_73 = 233,
+- SDLK_WORLD_74 = 234,
+- SDLK_WORLD_75 = 235,
+- SDLK_WORLD_76 = 236,
+- SDLK_WORLD_77 = 237,
+- SDLK_WORLD_78 = 238,
+- SDLK_WORLD_79 = 239,
+- SDLK_WORLD_80 = 240,
+- SDLK_WORLD_81 = 241,
+- SDLK_WORLD_82 = 242,
+- SDLK_WORLD_83 = 243,
+- SDLK_WORLD_84 = 244,
+- SDLK_WORLD_85 = 245,
+- SDLK_WORLD_86 = 246,
+- SDLK_WORLD_87 = 247,
+- SDLK_WORLD_88 = 248,
+- SDLK_WORLD_89 = 249,
+- SDLK_WORLD_90 = 250,
+- SDLK_WORLD_91 = 251,
+- SDLK_WORLD_92 = 252,
+- SDLK_WORLD_93 = 253,
+- SDLK_WORLD_94 = 254,
+- SDLK_WORLD_95 = 255, /* 0xFF */
+-
+- /* Numeric keypad */
+- SDLK_KP0 = 256,
+- SDLK_KP1 = 257,
+- SDLK_KP2 = 258,
+- SDLK_KP3 = 259,
+- SDLK_KP4 = 260,
+- SDLK_KP5 = 261,
+- SDLK_KP6 = 262,
+- SDLK_KP7 = 263,
+- SDLK_KP8 = 264,
+- SDLK_KP9 = 265,
+- SDLK_KP_PERIOD = 266,
+- SDLK_KP_DIVIDE = 267,
+- SDLK_KP_MULTIPLY = 268,
+- SDLK_KP_MINUS = 269,
+- SDLK_KP_PLUS = 270,
+- SDLK_KP_ENTER = 271,
+- SDLK_KP_EQUALS = 272,
+-
+- /* Arrows + Home/End pad */
+- SDLK_UP = 273,
+- SDLK_DOWN = 274,
+- SDLK_RIGHT = 275,
+- SDLK_LEFT = 276,
+- SDLK_INSERT = 277,
+- SDLK_HOME = 278,
+- SDLK_END = 279,
+- SDLK_PAGEUP = 280,
+- SDLK_PAGEDOWN = 281,
+-
+- /* Function keys */
+- SDLK_F1 = 282,
+- SDLK_F2 = 283,
+- SDLK_F3 = 284,
+- SDLK_F4 = 285,
+- SDLK_F5 = 286,
+- SDLK_F6 = 287,
+- SDLK_F7 = 288,
+- SDLK_F8 = 289,
+- SDLK_F9 = 290,
+- SDLK_F10 = 291,
+- SDLK_F11 = 292,
+- SDLK_F12 = 293,
+- SDLK_F13 = 294,
+- SDLK_F14 = 295,
+- SDLK_F15 = 296,
+-
+- /* Key state modifier keys */
+- SDLK_NUMLOCK = 300,
+- SDLK_CAPSLOCK = 301,
+- SDLK_SCROLLOCK = 302,
+- SDLK_RSHIFT = 303,
+- SDLK_LSHIFT = 304,
+- SDLK_RCTRL = 305,
+- SDLK_LCTRL = 306,
+- SDLK_RALT = 307,
+- SDLK_LALT = 308,
+- SDLK_RMETA = 309,
+- SDLK_LMETA = 310,
+- SDLK_LSUPER = 311, /* Left "Windows" key */
+- SDLK_RSUPER = 312, /* Right "Windows" key */
+- SDLK_MODE = 313, /* "Alt Gr" key */
+- SDLK_COMPOSE = 314, /* Multi-key compose key */
+-
+- /* Miscellaneous function keys */
+- SDLK_HELP = 315,
+- SDLK_PRINT = 316,
+- SDLK_SYSREQ = 317,
+- SDLK_BREAK = 318,
+- SDLK_MENU = 319,
+- SDLK_POWER = 320, /* Power Macintosh power key */
+- SDLK_EURO = 321, /* Some european keyboards */
+- SDLK_UNDO = 322, /* Atari keyboard has Undo */
+-
+- /* Add any other keys here */
+-
+- SDLK_LAST
+-}
+-
+-/* Enumeration of valid key mods (possibly OR'd together) */
+-alias int SDLMod;
+-enum {
+- KMOD_NONE = 0x0000,
+- KMOD_LSHIFT= 0x0001,
+- KMOD_RSHIFT= 0x0002,
+- KMOD_LCTRL = 0x0040,
+- KMOD_RCTRL = 0x0080,
+- KMOD_LALT = 0x0100,
+- KMOD_RALT = 0x0200,
+- KMOD_LMETA = 0x0400,
+- KMOD_RMETA = 0x0800,
+- KMOD_NUM = 0x1000,
+- KMOD_CAPS = 0x2000,
+- KMOD_MODE = 0x4000,
+- KMOD_RESERVED = 0x8000
+-}
+-
+-const uint KMOD_CTRL = (KMOD_LCTRL|KMOD_RCTRL);
+-const uint KMOD_SHIFT = (KMOD_LSHIFT|KMOD_RSHIFT);
+-const uint KMOD_ALT = (KMOD_LALT|KMOD_RALT);
+-const uint KMOD_META = (KMOD_LMETA|KMOD_RMETA);
+diff -Naur a2k_src/import/SDL_Keysym.d a2k_src-p/import/SDL_Keysym.d
+--- a2k_src/import/SDL_Keysym.d 1970-01-01 01:00:00.000000000 +0100
++++ a2k_src-p/import/SDL_Keysym.d 2009-08-27 15:18:28.000000000 +0200
+@@ -0,0 +1,308 @@
++/*
++ SDL - Simple DirectMedia Layer
++ Copyright (C) 1997, 1998, 1999, 2000, 2001 Sam Lantinga
++
++ This library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Library General Public
++ License as published by the Free Software Foundation; either
++ version 2 of the License, or (at your option) any later version.
++
++ This library 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
++ Library General Public License for more details.
++
++ You should have received a copy of the GNU Library General Public
++ License along with this library; if not, write to the Free
++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++
++ Sam Lantinga
++ slouken@devolution.com
++*/
++
++/* What we really want is a mapping of every raw key on the keyboard.
++ To support international keyboards, we use the range 0xA1 - 0xFF
++ as international virtual keycodes. We'll follow in the footsteps of X11...
++ The names of the keys
++ */
++
++alias int SDLKey;
++enum {
++ /* The keyboard syms have been cleverly chosen to map to ASCII */
++ SDLK_UNKNOWN = 0,
++ SDLK_FIRST = 0,
++ SDLK_BACKSPACE = 8,
++ SDLK_TAB = 9,
++ SDLK_CLEAR = 12,
++ SDLK_RETURN = 13,
++ SDLK_PAUSE = 19,
++ SDLK_ESCAPE = 27,
++ SDLK_SPACE = 32,
++ SDLK_EXCLAIM = 33,
++ SDLK_QUOTEDBL = 34,
++ SDLK_HASH = 35,
++ SDLK_DOLLAR = 36,
++ SDLK_AMPERSAND = 38,
++ SDLK_QUOTE = 39,
++ SDLK_LEFTPAREN = 40,
++ SDLK_RIGHTPAREN = 41,
++ SDLK_ASTERISK = 42,
++ SDLK_PLUS = 43,
++ SDLK_COMMA = 44,
++ SDLK_MINUS = 45,
++ SDLK_PERIOD = 46,
++ SDLK_SLASH = 47,
++ SDLK_0 = 48,
++ SDLK_1 = 49,
++ SDLK_2 = 50,
++ SDLK_3 = 51,
++ SDLK_4 = 52,
++ SDLK_5 = 53,
++ SDLK_6 = 54,
++ SDLK_7 = 55,
++ SDLK_8 = 56,
++ SDLK_9 = 57,
++ SDLK_COLON = 58,
++ SDLK_SEMICOLON = 59,
++ SDLK_LESS = 60,
++ SDLK_EQUALS = 61,
++ SDLK_GREATER = 62,
++ SDLK_QUESTION = 63,
++ SDLK_AT = 64,
++ /*
++ Skip uppercase letters
++ */
++ SDLK_LEFTBRACKET = 91,
++ SDLK_BACKSLASH = 92,
++ SDLK_RIGHTBRACKET = 93,
++ SDLK_CARET = 94,
++ SDLK_UNDERSCORE = 95,
++ SDLK_BACKQUOTE = 96,
++ SDLK_a = 97,
++ SDLK_b = 98,
++ SDLK_c = 99,
++ SDLK_d = 100,
++ SDLK_e = 101,
++ SDLK_f = 102,
++ SDLK_g = 103,
++ SDLK_h = 104,
++ SDLK_i = 105,
++ SDLK_j = 106,
++ SDLK_k = 107,
++ SDLK_l = 108,
++ SDLK_m = 109,
++ SDLK_n = 110,
++ SDLK_o = 111,
++ SDLK_p = 112,
++ SDLK_q = 113,
++ SDLK_r = 114,
++ SDLK_s = 115,
++ SDLK_t = 116,
++ SDLK_u = 117,
++ SDLK_v = 118,
++ SDLK_w = 119,
++ SDLK_x = 120,
++ SDLK_y = 121,
++ SDLK_z = 122,
++ SDLK_DELETE = 127,
++ /* End of ASCII mapped keysyms */
++
++ /* International keyboard syms */
++ SDLK_WORLD_0 = 160, /* 0xA0 */
++ SDLK_WORLD_1 = 161,
++ SDLK_WORLD_2 = 162,
++ SDLK_WORLD_3 = 163,
++ SDLK_WORLD_4 = 164,
++ SDLK_WORLD_5 = 165,
++ SDLK_WORLD_6 = 166,
++ SDLK_WORLD_7 = 167,
++ SDLK_WORLD_8 = 168,
++ SDLK_WORLD_9 = 169,
++ SDLK_WORLD_10 = 170,
++ SDLK_WORLD_11 = 171,
++ SDLK_WORLD_12 = 172,
++ SDLK_WORLD_13 = 173,
++ SDLK_WORLD_14 = 174,
++ SDLK_WORLD_15 = 175,
++ SDLK_WORLD_16 = 176,
++ SDLK_WORLD_17 = 177,
++ SDLK_WORLD_18 = 178,
++ SDLK_WORLD_19 = 179,
++ SDLK_WORLD_20 = 180,
++ SDLK_WORLD_21 = 181,
++ SDLK_WORLD_22 = 182,
++ SDLK_WORLD_23 = 183,
++ SDLK_WORLD_24 = 184,
++ SDLK_WORLD_25 = 185,
++ SDLK_WORLD_26 = 186,
++ SDLK_WORLD_27 = 187,
++ SDLK_WORLD_28 = 188,
++ SDLK_WORLD_29 = 189,
++ SDLK_WORLD_30 = 190,
++ SDLK_WORLD_31 = 191,
++ SDLK_WORLD_32 = 192,
++ SDLK_WORLD_33 = 193,
++ SDLK_WORLD_34 = 194,
++ SDLK_WORLD_35 = 195,
++ SDLK_WORLD_36 = 196,
++ SDLK_WORLD_37 = 197,
++ SDLK_WORLD_38 = 198,
++ SDLK_WORLD_39 = 199,
++ SDLK_WORLD_40 = 200,
++ SDLK_WORLD_41 = 201,
++ SDLK_WORLD_42 = 202,
++ SDLK_WORLD_43 = 203,
++ SDLK_WORLD_44 = 204,
++ SDLK_WORLD_45 = 205,
++ SDLK_WORLD_46 = 206,
++ SDLK_WORLD_47 = 207,
++ SDLK_WORLD_48 = 208,
++ SDLK_WORLD_49 = 209,
++ SDLK_WORLD_50 = 210,
++ SDLK_WORLD_51 = 211,
++ SDLK_WORLD_52 = 212,
++ SDLK_WORLD_53 = 213,
++ SDLK_WORLD_54 = 214,
++ SDLK_WORLD_55 = 215,
++ SDLK_WORLD_56 = 216,
++ SDLK_WORLD_57 = 217,
++ SDLK_WORLD_58 = 218,
++ SDLK_WORLD_59 = 219,
++ SDLK_WORLD_60 = 220,
++ SDLK_WORLD_61 = 221,
++ SDLK_WORLD_62 = 222,
++ SDLK_WORLD_63 = 223,
++ SDLK_WORLD_64 = 224,
++ SDLK_WORLD_65 = 225,
++ SDLK_WORLD_66 = 226,
++ SDLK_WORLD_67 = 227,
++ SDLK_WORLD_68 = 228,
++ SDLK_WORLD_69 = 229,
++ SDLK_WORLD_70 = 230,
++ SDLK_WORLD_71 = 231,
++ SDLK_WORLD_72 = 232,
++ SDLK_WORLD_73 = 233,
++ SDLK_WORLD_74 = 234,
++ SDLK_WORLD_75 = 235,
++ SDLK_WORLD_76 = 236,
++ SDLK_WORLD_77 = 237,
++ SDLK_WORLD_78 = 238,
++ SDLK_WORLD_79 = 239,
++ SDLK_WORLD_80 = 240,
++ SDLK_WORLD_81 = 241,
++ SDLK_WORLD_82 = 242,
++ SDLK_WORLD_83 = 243,
++ SDLK_WORLD_84 = 244,
++ SDLK_WORLD_85 = 245,
++ SDLK_WORLD_86 = 246,
++ SDLK_WORLD_87 = 247,
++ SDLK_WORLD_88 = 248,
++ SDLK_WORLD_89 = 249,
++ SDLK_WORLD_90 = 250,
++ SDLK_WORLD_91 = 251,
++ SDLK_WORLD_92 = 252,
++ SDLK_WORLD_93 = 253,
++ SDLK_WORLD_94 = 254,
++ SDLK_WORLD_95 = 255, /* 0xFF */
++
++ /* Numeric keypad */
++ SDLK_KP0 = 256,
++ SDLK_KP1 = 257,
++ SDLK_KP2 = 258,
++ SDLK_KP3 = 259,
++ SDLK_KP4 = 260,
++ SDLK_KP5 = 261,
++ SDLK_KP6 = 262,
++ SDLK_KP7 = 263,
++ SDLK_KP8 = 264,
++ SDLK_KP9 = 265,
++ SDLK_KP_PERIOD = 266,
++ SDLK_KP_DIVIDE = 267,
++ SDLK_KP_MULTIPLY = 268,
++ SDLK_KP_MINUS = 269,
++ SDLK_KP_PLUS = 270,
++ SDLK_KP_ENTER = 271,
++ SDLK_KP_EQUALS = 272,
++
++ /* Arrows + Home/End pad */
++ SDLK_UP = 273,
++ SDLK_DOWN = 274,
++ SDLK_RIGHT = 275,
++ SDLK_LEFT = 276,
++ SDLK_INSERT = 277,
++ SDLK_HOME = 278,
++ SDLK_END = 279,
++ SDLK_PAGEUP = 280,
++ SDLK_PAGEDOWN = 281,
++
++ /* Function keys */
++ SDLK_F1 = 282,
++ SDLK_F2 = 283,
++ SDLK_F3 = 284,
++ SDLK_F4 = 285,
++ SDLK_F5 = 286,
++ SDLK_F6 = 287,
++ SDLK_F7 = 288,
++ SDLK_F8 = 289,
++ SDLK_F9 = 290,
++ SDLK_F10 = 291,
++ SDLK_F11 = 292,
++ SDLK_F12 = 293,
++ SDLK_F13 = 294,
++ SDLK_F14 = 295,
++ SDLK_F15 = 296,
++
++ /* Key state modifier keys */
++ SDLK_NUMLOCK = 300,
++ SDLK_CAPSLOCK = 301,
++ SDLK_SCROLLOCK = 302,
++ SDLK_RSHIFT = 303,
++ SDLK_LSHIFT = 304,
++ SDLK_RCTRL = 305,
++ SDLK_LCTRL = 306,
++ SDLK_RALT = 307,
++ SDLK_LALT = 308,
++ SDLK_RMETA = 309,
++ SDLK_LMETA = 310,
++ SDLK_LSUPER = 311, /* Left "Windows" key */
++ SDLK_RSUPER = 312, /* Right "Windows" key */
++ SDLK_MODE = 313, /* "Alt Gr" key */
++ SDLK_COMPOSE = 314, /* Multi-key compose key */
++
++ /* Miscellaneous function keys */
++ SDLK_HELP = 315,
++ SDLK_PRINT = 316,
++ SDLK_SYSREQ = 317,
++ SDLK_BREAK = 318,
++ SDLK_MENU = 319,
++ SDLK_POWER = 320, /* Power Macintosh power key */
++ SDLK_EURO = 321, /* Some european keyboards */
++ SDLK_UNDO = 322, /* Atari keyboard has Undo */
++
++ /* Add any other keys here */
++
++ SDLK_LAST
++}
++
++/* Enumeration of valid key mods (possibly OR'd together) */
++alias int SDLMod;
++enum {
++ KMOD_NONE = 0x0000,
++ KMOD_LSHIFT= 0x0001,
++ KMOD_RSHIFT= 0x0002,
++ KMOD_LCTRL = 0x0040,
++ KMOD_RCTRL = 0x0080,
++ KMOD_LALT = 0x0100,
++ KMOD_RALT = 0x0200,
++ KMOD_LMETA = 0x0400,
++ KMOD_RMETA = 0x0800,
++ KMOD_NUM = 0x1000,
++ KMOD_CAPS = 0x2000,
++ KMOD_MODE = 0x4000,
++ KMOD_RESERVED = 0x8000
++}
++
++const uint KMOD_CTRL = (KMOD_LCTRL|KMOD_RCTRL);
++const uint KMOD_SHIFT = (KMOD_LSHIFT|KMOD_RSHIFT);
++const uint KMOD_ALT = (KMOD_LALT|KMOD_RALT);
++const uint KMOD_META = (KMOD_LMETA|KMOD_RMETA);
+diff -Naur a2k_src/import/SDL_mixer.d a2k_src-p/import/SDL_mixer.d
+--- a2k_src/import/SDL_mixer.d 2006-07-26 23:24:04.000000000 +0200
++++ a2k_src-p/import/SDL_mixer.d 2009-08-27 15:18:28.000000000 +0200
+@@ -24,7 +24,7 @@
+
+ /* $Id: SDL_mixer.h,v 1.24 2002/05/21 05:45:59 slouken Exp $ */
+
+-public import SDL;
++import SDL;
+
+ extern (C) {
+
+diff -Naur a2k_src/import/SDL_mouse.d a2k_src-p/import/SDL_mouse.d
+--- a2k_src/import/SDL_mouse.d 2006-07-26 23:25:18.000000000 +0200
++++ a2k_src-p/import/SDL_mouse.d 2009-08-27 15:18:28.000000000 +0200
+@@ -22,8 +22,8 @@
+
+ /* Include file for SDL mouse event handling */
+
+-public import SDL_types;
+-public import SDL_video;
++import SDL_types;
++import SDL_video;
+
+ extern(C):
+
+diff -Naur a2k_src/import/SDL_mutex.d a2k_src-p/import/SDL_mutex.d
+--- a2k_src/import/SDL_mutex.d 2006-07-26 23:25:20.000000000 +0200
++++ a2k_src-p/import/SDL_mutex.d 2009-08-27 15:18:28.000000000 +0200
+@@ -25,7 +25,7 @@
+ These are independent of the other SDL routines.
+ */
+
+-public import SDL_types;
++import SDL_types;
+
+ extern(C):
+
+diff -Naur a2k_src/import/SDL_quit.d a2k_src-p/import/SDL_quit.d
+--- a2k_src/import/SDL_quit.d 2006-07-26 23:25:22.000000000 +0200
++++ a2k_src-p/import/SDL_quit.d 2009-08-27 15:18:28.000000000 +0200
+@@ -22,7 +22,7 @@
+
+ /* Include file for SDL quit event handling */
+
+-public import SDL_events;
++import SDL_events;
+
+ /*
+ An SDL_QUITEVENT is generated when the user tries to close the application
+diff -Naur a2k_src/import/SDL_rwops.d a2k_src-p/import/SDL_rwops.d
+--- a2k_src/import/SDL_rwops.d 2006-07-26 23:25:24.000000000 +0200
++++ a2k_src-p/import/SDL_rwops.d 2009-08-27 15:18:28.000000000 +0200
+@@ -24,7 +24,7 @@
+ data sources. It can easily be extended to files, memory, etc.
+ */
+
+-public import SDL_types;
++import SDL_types;
+
+ extern(C):
+
+diff -Naur a2k_src/import/SDL_sound.d a2k_src-p/import/SDL_sound.d
+--- a2k_src/import/SDL_sound.d 2006-07-26 23:25:26.000000000 +0200
++++ a2k_src-p/import/SDL_sound.d 2009-08-27 15:18:28.000000000 +0200
+@@ -62,7 +62,7 @@
+
+ // convert to D by shinichiro.h
+
+-public import SDL;
++import SDL;
+
+ extern (C) {
+ const int SOUND_VER_MAJOR = 1;
+diff -Naur a2k_src/import/SDL_syswm.d a2k_src-p/import/SDL_syswm.d
+--- a2k_src/import/SDL_syswm.d 2006-07-26 23:25:32.000000000 +0200
++++ a2k_src-p/import/SDL_syswm.d 2009-08-27 15:18:28.000000000 +0200
+@@ -22,7 +22,7 @@
+
+ /* Include file for SDL custom system window manager hooks */
+
+-public import SDL_Version;
++import SDL_Version;
+
+ extern(C):
+
+diff -Naur a2k_src/import/SDL_thread.d a2k_src-p/import/SDL_thread.d
+--- a2k_src/import/SDL_thread.d 2006-07-26 23:25:36.000000000 +0200
++++ a2k_src-p/import/SDL_thread.d 2009-08-27 15:18:28.000000000 +0200
+@@ -25,8 +25,8 @@
+ These are independent of the other SDL routines.
+ */
+
+-public import SDL_types;
+-public import SDL_mutex;
++import SDL_types;
++import SDL_mutex;
+
+ extern(C):
+
+diff -Naur a2k_src/import/SDL_timer.d a2k_src-p/import/SDL_timer.d
+--- a2k_src/import/SDL_timer.d 2006-07-26 23:25:38.000000000 +0200
++++ a2k_src-p/import/SDL_timer.d 2009-08-27 15:18:28.000000000 +0200
+@@ -20,7 +20,7 @@
+ slouken@devolution.com
+ */
+
+-public import SDL_types;
++import SDL_types;
+
+ extern(C):
+
+diff -Naur a2k_src/import/SDL_version.d a2k_src-p/import/SDL_version.d
+--- a2k_src/import/SDL_version.d 2006-07-26 23:25:40.000000000 +0200
++++ a2k_src-p/import/SDL_version.d 1970-01-01 01:00:00.000000000 +0100
+@@ -1,75 +0,0 @@
+-/*
+- SDL - Simple DirectMedia Layer
+- Copyright (C) 1997, 1998, 1999, 2000, 2001 Sam Lantinga
+-
+- This library is free software; you can redistribute it and/or
+- modify it under the terms of the GNU Library General Public
+- License as published by the Free Software Foundation; either
+- version 2 of the License, or (at your option) any later version.
+-
+- This library 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
+- Library General Public License for more details.
+-
+- You should have received a copy of the GNU Library General Public
+- License along with this library; if not, write to the Free
+- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+-
+- Sam Lantinga
+- slouken@devolution.com
+-*/
+-
+-/* This header defines the current SDL version */
+-
+-public import SDL_types;
+-
+-extern(C):
+-
+-/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
+-*/
+-const uint SDL_MAJOR_VERSION = 1;
+-const uint SDL_MINOR_VERSION = 2;
+-const uint SDL_PATCHLEVEL = 6;
+-
+-struct SDL_version {
+- Uint8 major;
+- Uint8 minor;
+- Uint8 patch;
+-}
+-
+-/* This macro can be used to fill a version structure with the compile-time
+- * version of the SDL library.
+- */
+-void SDL_VERSION(SDL_version* X)
+-{
+- X.major = SDL_MAJOR_VERSION;
+- X.minor = SDL_MINOR_VERSION;
+- X.patch = SDL_PATCHLEVEL;
+-}
+-
+-/* This macro turns the version numbers into a numeric value:
+- (1,2,3) -> (1203)
+- This assumes that there will never be more than 100 patchlevels
+-*/
+-uint SDL_VERSIONNUM(Uint8 X, Uint8 Y, Uint8 Z)
+-{
+- return X * 1000 + Y * 100 + Z;
+-}
+-
+-/* This is the version number macro for the current SDL version */
+-const uint SDL_COMPILEDVERSION = SDL_MAJOR_VERSION * 1000 +
+- SDL_MINOR_VERSION * 100 +
+- SDL_PATCHLEVEL;
+-
+-/* This macro will evaluate to true if compiled with SDL at least X.Y.Z */
+-bit SDL_VERSION_ATLEAST(Uint8 X, Uint8 Y, Uint8 Z)
+-{
+- return (SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z));
+-}
+-
+-/* This function gets the version of the dynamically linked SDL library.
+- it should NOT be used to fill a version structure, instead you should
+- use the SDL_Version() macro.
+- */
+-SDL_version * SDL_Linked_Version();
+diff -Naur a2k_src/import/SDL_Version.d a2k_src-p/import/SDL_Version.d
+--- a2k_src/import/SDL_Version.d 1970-01-01 01:00:00.000000000 +0100
++++ a2k_src-p/import/SDL_Version.d 2009-08-27 15:18:28.000000000 +0200
+@@ -0,0 +1,75 @@
++/*
++ SDL - Simple DirectMedia Layer
++ Copyright (C) 1997, 1998, 1999, 2000, 2001 Sam Lantinga
++
++ This library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Library General Public
++ License as published by the Free Software Foundation; either
++ version 2 of the License, or (at your option) any later version.
++
++ This library 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
++ Library General Public License for more details.
++
++ You should have received a copy of the GNU Library General Public
++ License along with this library; if not, write to the Free
++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++
++ Sam Lantinga
++ slouken@devolution.com
++*/
++
++/* This header defines the current SDL version */
++
++import SDL_types;
++
++extern(C):
++
++/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
++*/
++const uint SDL_MAJOR_VERSION = 1;
++const uint SDL_MINOR_VERSION = 2;
++const uint SDL_PATCHLEVEL = 6;
++
++struct SDL_version {
++ Uint8 major;
++ Uint8 minor;
++ Uint8 patch;
++}
++
++/* This macro can be used to fill a version structure with the compile-time
++ * version of the SDL library.
++ */
++void SDL_VERSION(SDL_version* X)
++{
++ X.major = SDL_MAJOR_VERSION;
++ X.minor = SDL_MINOR_VERSION;
++ X.patch = SDL_PATCHLEVEL;
++}
++
++/* This macro turns the version numbers into a numeric value:
++ (1,2,3) -> (1203)
++ This assumes that there will never be more than 100 patchlevels
++*/
++uint SDL_VERSIONNUM(Uint8 X, Uint8 Y, Uint8 Z)
++{
++ return X * 1000 + Y * 100 + Z;
++}
++
++/* This is the version number macro for the current SDL version */
++const uint SDL_COMPILEDVERSION = SDL_MAJOR_VERSION * 1000 +
++ SDL_MINOR_VERSION * 100 +
++ SDL_PATCHLEVEL;
++
++/* This macro will evaluate to true if compiled with SDL at least X.Y.Z */
++bit SDL_VERSION_ATLEAST(Uint8 X, Uint8 Y, Uint8 Z)
++{
++ return (SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z));
++}
++
++/* This function gets the version of the dynamically linked SDL library.
++ it should NOT be used to fill a version structure, instead you should
++ use the SDL_Version() macro.
++ */
++SDL_version * SDL_Linked_Version();
+diff -Naur a2k_src/import/SDL_video.d a2k_src-p/import/SDL_video.d
+--- a2k_src/import/SDL_video.d 2006-07-26 23:25:42.000000000 +0200
++++ a2k_src-p/import/SDL_video.d 2009-08-27 15:18:28.000000000 +0200
+@@ -22,9 +22,9 @@
+
+ /* Header file for access to the SDL raw framebuffer window */
+
+-public import SDL_types;
+-public import SDL_mutex;
+-public import SDL_rwops;
++import SDL_types;
++import SDL_mutex;
++import SDL_rwops;
+
+ extern(C):
+
diff --git a/games-action/area2048/files/area2048-1.03-makefile.patch b/games-action/area2048/files/area2048-1.03-makefile.patch
new file mode 100644
index 0000000..47d8659
--- /dev/null
+++ b/games-action/area2048/files/area2048-1.03-makefile.patch
@@ -0,0 +1,22 @@
+diff -Naur Makefile a2k_Makefile
+--- Makefile 1970-01-01 01:00:00.000000000 +0100
++++ Makefile 2008-10-07 09:53:29.000000000 +0200
+@@ -0,0 +1,18 @@
++DSRC=$(shell find a2k_src/src -name "*.d")
++SOURCES=$(DSRC) a2k_src/import/SDL_video.d a2k_src/import/SDL_mixer.d
++OBJS=$(SOURCES:.d=.o)
++CFLAGS=
++DFLAGS=-O -Ia2k_src/import -Ia2k_src/src -I/usr/X11R6/include/
++EXE=area2048
++
++all: $(EXE)
++
++$(EXE): $(OBJS)
++ gcc $(CFLAGS) -o $@ $(OBJS) $(COBJS) -lbulletml -L/usr/local/lib -L/usr/lib -lgphobos -lpthread -lGLU -lGL -lglut -lm -lstdc++ -lSDL -lSDL_mixer
++
++$(OBJS): %.o: %.d
++ gdmd -d -c -of$@ $(DFLAGS) $<
++
++clean:
++ rm a2k_src/src/*.o
++
diff --git a/games-action/area2048/files/area2048-1.03-src.patch b/games-action/area2048/files/area2048-1.03-src.patch
new file mode 100644
index 0000000..4913331
--- /dev/null
+++ b/games-action/area2048/files/area2048-1.03-src.patch
@@ -0,0 +1,1217 @@
+diff -Naur a2k_src/src/bg.d a2k_src-p/src/bg.d
+--- a2k_src/src/bg.d 2005-01-18 00:34:48.000000000 +0100
++++ a2k_src-p/src/bg.d 2009-08-27 15:18:28.000000000 +0200
+@@ -14,7 +14,12 @@
+ private import util_snd;
+ private import define;
+ private import task;
+-private import stg;
++private import stg;
++private import stg01;
++private import stg02;
++private import stg03;
++private import stg04;
++private import stg05;
+ private import effect;
+ private import ship;
+
+@@ -79,20 +84,20 @@
+ TskBuf[fade_id].tx = 1.0f;
+ TskBuf[fade_id].wait = 60;
+ TskBuf[fade_id].step = 2;
+- TskBuf[id].px = cast(float)(rand() % 1536 - 768.0f);
++ TskBuf[id].px = cast(float)(rand() % 1536 - 768.0f);
+ TskBuf[id].py = cast(float)(rand() % 1536 - 768.0f);
+ if((rand() % 100) & 0x01){
+ if(TskBuf[id].px < 0.0f){
+ TskBuf[id].tx = +(cast(float)(rand() % 768));
+ }else{
+- TskBuf[id].tx = -(cast(float)(rand() % 768));
++ TskBuf[id].tx = +(cast(float)(rand() % 768));
+ }
+ TskBuf[id].ty = TskBuf[id].py;
+ }else{
+ if(TskBuf[id].py < 0.0f){
+ TskBuf[id].ty = +(cast(float)(rand() % 768));
+ }else{
+- TskBuf[id].ty = -(cast(float)(rand() % 768));
++ TskBuf[id].ty = +(cast(float)(rand() % 768));
+ }
+ TskBuf[id].tx = TskBuf[id].px;
+ }
+@@ -104,7 +109,7 @@
+ cam_pos = BASE_Z + cam_scr;
+ eid = setTSK(GROUP_08,&TSKbgZoom);
+ TskBuf[eid].wait = 600;
+- TskBuf[eid].tx = BASE_Z - (cast(float)((rand() % 5000) - 2500 + 10000) / 10000.0f);
++ TskBuf[eid].tx = BASE_Z - ((cast(float)(rand() % 5000) - 2500 + 10000) / 10000.0f);
+ TskBuf[id].step++;
+ break;
+ case 2:
+@@ -202,22 +207,34 @@
+ scr_base[Y] = START_Y;
+ scr_ofs[X] = 0.0f;
+ scr_ofs[Y] = 0.0f;
+- cam_pos = BASE_Z + cam_scr;
++ cam_pos = BASE_Z + cam_scr;
++ bg_mode = 0;
++ stg_ctrl = STG_MAIN;
+ switch(area_num){
+ case AREA_01:
+- bg_mode = 0;
++ bg_mode = 0;
++ stg_ctrl = STG_MAIN;
++ setTSK(GROUP_01,&TSKstg01);
+ break;
+ case AREA_02:
+- bg_mode = 1;
++ bg_mode = 1;
++ stg_ctrl = STG_MAIN;
++ setTSK(GROUP_01,&TSKstg02);
+ break;
+ case AREA_03:
+- bg_mode = 2;
++ bg_mode = 2;
++ stg_ctrl = STG_MAIN;
++ setTSK(GROUP_01,&TSKstg03);
+ break;
+ case AREA_04:
+- bg_mode = 3;
++ bg_mode = 3;
++ stg_ctrl = STG_MAIN;
++ setTSK(GROUP_01,&TSKstg04);
+ break;
+ case AREA_05:
+- bg_mode = 4;
++ bg_mode = 4;
++ stg_ctrl = STG_MAIN;
++ setTSK(GROUP_01,&TSKstg05);
+ break;
+ default:
+ break;
+@@ -296,7 +313,7 @@
+ bg_obj[i].line_list.length = 1;
+ bg_obj[i].line_list[0][X] = +0.0f;
+ bg_obj[i].line_list[0][Y] = +0.0f;
+- bg_obj[i].line_list[0][Z] = -(cast(float)(rand() % 75)) / 100.0f + 0.25f;
++ bg_obj[i].line_list[0][Z] = -cast(float)(rand() % 75) / 100.0f + 0.25f;
+ }
+ break;
+ case 4:
+@@ -600,8 +617,8 @@
+ break;
+ case 1:
+ if(TskBuf[id].wait){
+- TskBuf[id].px = ((rand() % (256.0f * TskBuf[id].vx)) - ((256.0f * TskBuf[id].vx) / 2)) / 256.0f;
+- TskBuf[id].py = ((rand() % (256.0f * TskBuf[id].vy)) - ((256.0f * TskBuf[id].vy) / 2)) / 256.0f;
++ TskBuf[id].px = (cast(float)(rand() % (256.0f * TskBuf[id].vx)) - ((256.0f * TskBuf[id].vx) / 2)) / 256.0f;
++ TskBuf[id].py = (cast(float)(rand() % (256.0f * TskBuf[id].vy)) - ((256.0f * TskBuf[id].vy) / 2)) / 256.0f;
+ TskBuf[id].vx += (0.0f - TskBuf[id].vx) / TskBuf[id].cnt;
+ TskBuf[id].vy += (0.0f - TskBuf[id].vy) / TskBuf[id].cnt;
+ scr_ofs[X] = TskBuf[id].px;
+diff -Naur a2k_src/src/boss01.d a2k_src-p/src/boss01.d
+--- a2k_src/src/boss01.d 2008-02-06 01:34:54.000000000 +0100
++++ a2k_src-p/src/boss01.d 2009-08-27 15:18:28.000000000 +0200
+@@ -7,7 +7,7 @@
+ */
+
+ private import std.stdio;
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import std.string;
+ private import SDL;
+diff -Naur a2k_src/src/boss02.d a2k_src-p/src/boss02.d
+--- a2k_src/src/boss02.d 2008-02-06 01:35:18.000000000 +0100
++++ a2k_src-p/src/boss02.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/04/16 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import std.string;
+ private import SDL;
+diff -Naur a2k_src/src/boss03.d a2k_src-p/src/boss03.d
+--- a2k_src/src/boss03.d 2008-02-06 01:35:30.000000000 +0100
++++ a2k_src-p/src/boss03.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/06/08 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import std.string;
+ private import SDL;
+@@ -358,7 +358,7 @@
+ }
+ if(!cmd.isEnd()) cmd.run();
+ break;
+- TskBuf[id].ang_x = rand() % 65536;
++ TskBuf[id].ang_x = cast(float)rand() % 65536;
+ TskBuf[id].ang_x *= PI / 65536.0f;
+ TskBuf[id].ax =
+ TskBuf[id].ay = sin(TskBuf[id].ang_x) * 5.0f / PI;
+diff -Naur a2k_src/src/boss04.d a2k_src-p/src/boss04.d
+--- a2k_src/src/boss04.d 2008-02-06 01:35:34.000000000 +0100
++++ a2k_src-p/src/boss04.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/06/06 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import std.string;
+ private import SDL;
+diff -Naur a2k_src/src/boss05.d a2k_src-p/src/boss05.d
+--- a2k_src/src/boss05.d 2008-02-06 01:35:38.000000000 +0100
++++ a2k_src-p/src/boss05.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/06/09 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import std.string;
+ private import SDL;
+diff -Naur a2k_src/src/bulletcommand.d a2k_src-p/src/bulletcommand.d
+--- a2k_src/src/bulletcommand.d 2008-02-06 01:37:56.000000000 +0100
++++ a2k_src-p/src/bulletcommand.d 2009-08-27 15:18:28.000000000 +0200
+@@ -247,7 +247,7 @@
+ double getRand_(BulletMLRunner* runner){
+ double rand_val;
+ //printf("getRand_(%d)\n",BulletCommand.now.id);
+- rand_val = rand() % 10000;
++ rand_val = cast(float)rand() % 10000;
+ rand_val /= 10000;
+ return rand_val;
+ }
+diff -Naur a2k_src/src/effect.d a2k_src-p/src/effect.d
+--- a2k_src/src/effect.d 2008-02-06 01:35:40.000000000 +0100
++++ a2k_src-p/src/effect.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,14 +6,15 @@
+ 2004/03/31 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import std.string;
+ private import SDL;
+ private import opengl;
+ private import util_sdl;
+ private import task;
+-private import bg;
++private import bg;
++private import system;
+
+ float fade_r = 0.0f;
+ float fade_g = 0.0f;
+@@ -53,16 +54,16 @@
+ for(int i = 0; i < 3; i++){
+ switch(i){
+ case 0:
+- tpos[X] = -((rand() % 4096) / 1024.0f + 1.0f);
+- tpos[Y] = +((rand() % 4096) / 1024.0f + 1.0f);
++ tpos[X] = -cast(float)((rand() % 4096) / 1024.0f + 1.0f);
++ tpos[Y] = +cast(float)((rand() % 4096) / 1024.0f + 1.0f);
+ break;
+ case 1:
+- tpos[X] = ((rand() % 2048) / 1024.0f - 1.0f);
+- tpos[Y] = -((rand() % 4096) / 1024.0f + 1.0f);
++ tpos[X] = cast(float)((rand() % 2048) / 1024.0f - 1.0f);
++ tpos[Y] = -cast(float)((rand() % 4096) / 1024.0f + 1.0f);
+ break;
+ case 2:
+- tpos[X] = +((rand() % 4096) / 1024.0f + 1.0f);
+- tpos[Y] = +((rand() % 4096) / 1024.0f + 1.0f);
++ tpos[X] = +cast(float)((rand() % 4096) / 1024.0f + 1.0f);
++ tpos[Y] = +cast(float)((rand() % 4096) / 1024.0f + 1.0f);
+ break;
+ default:
+ break;
+@@ -74,8 +75,8 @@
+ tpos[Y] = fabs(tpos[Y]);
+ TskBuf[id].body_ang[i][W] = sqrt(pow(tpos[X],2.0) + pow(tpos[Y],2.0));
+ }
+- TskBuf[id].tx = (rand() % 256000) / 1000.0f - 128.0f;
+- TskBuf[id].ty = (rand() % 256000) / 1000.0f - 128.0f;
++ TskBuf[id].tx = cast(float)(rand() % 256000) / 1000.0f - 128.0f;
++ TskBuf[id].ty = cast(float)(rand() % 256000) / 1000.0f - 128.0f;
+ TskBuf[id].tx += TskBuf[id].px;
+ TskBuf[id].ty += TskBuf[id].py;
+ TskBuf[id].wait = 60;
+@@ -165,16 +166,16 @@
+ for(int i = 0; i < 3; i++){
+ switch(i){
+ case 0:
+- tpos[X] = -((rand() % 12288) / 1024.0f + 3.0f);
+- tpos[Y] = +((rand() % 12288) / 1024.0f + 3.0f);
++ tpos[X] = -(cast(float)(rand() % 12288) / 1024.0f + 3.0f);
++ tpos[Y] = +(cast(float)(rand() % 12288) / 1024.0f + 3.0f);
+ break;
+ case 1:
+- tpos[X] = ((rand() % 6144) / 1024.0f - 3.0f);
+- tpos[Y] = -((rand() % 12288) / 1024.0f + 3.0f);
++ tpos[X] = (cast(float)(rand() % 6144) / 1024.0f - 3.0f);
++ tpos[Y] = -(cast(float)(rand() % 12288) / 1024.0f + 3.0f);
+ break;
+ case 2:
+- tpos[X] = +((rand() % 12288) / 1024.0f + 3.0f);
+- tpos[Y] = +((rand() % 12288) / 1024.0f + 3.0f);
++ tpos[X] = +(cast(float)(rand() % 12288) / 1024.0f + 3.0f);
++ tpos[Y] = +(cast(float)(rand() % 12288) / 1024.0f + 3.0f);
+ break;
+ default:
+ break;
+@@ -186,8 +187,8 @@
+ tpos[Y] = fabs(tpos[Y]);
+ TskBuf[id].body_ang[i][W] = sqrt(pow(tpos[X],2.0) + pow(tpos[Y],2.0));
+ }
+- TskBuf[id].tx = (rand() % 512000) / 1000.0f - 256.0f;
+- TskBuf[id].ty = (rand() % 512000) / 1000.0f - 256.0f;
++ TskBuf[id].tx = cast(float)(rand() % 512000) / 1000.0f - 256.0f;
++ TskBuf[id].ty = cast(float)(rand() % 512000) / 1000.0f - 256.0f;
+ TskBuf[id].tx += TskBuf[id].px;
+ TskBuf[id].ty += TskBuf[id].py;
+ TskBuf[id].wait = 60;
+@@ -279,13 +280,13 @@
+ TskBuf[id].fp_draw = &TSKBrokenBodyDraw;
+ TskBuf[id].fp_exit = &TSKBrokenBodyExit;
+ TskBuf[id].alpha = 1.0f;
+- TskBuf[id].tx = (rand() % 256000) / 1000.0f - 128.0f;
+- TskBuf[id].ty = (rand() % 256000) / 1000.0f - 128.0f;
++ TskBuf[id].tx = cast(float)(rand() % 256000) / 1000.0f - 128.0f;
++ TskBuf[id].ty = cast(float)(rand() % 256000) / 1000.0f - 128.0f;
+ TskBuf[id].tx *= 2.0f;
+ TskBuf[id].ty *= 2.0f;
+ TskBuf[id].tx += TskBuf[id].px;
+ TskBuf[id].ty += TskBuf[id].py;
+- TskBuf[id].rot_add = (rand % 30) - 15;
++ TskBuf[id].rot_add = cast(float)(rand % 30) - 15;
+ if(!(TskBuf[id].rot_add - 15)) TskBuf[id].rot_add = -1;
+ else if(!(TskBuf[id].rot_add + 15)) TskBuf[id].rot_add = +1;
+ if(TskBuf[id].rot_add < 0) TskBuf[id].rot_add = PI / (TskBuf[id].rot_add - 15);
+@@ -410,13 +411,13 @@
+ TskBuf[id].fp_draw = &TSKBrokenLineDraw;
+ TskBuf[id].fp_exit = &TSKBrokenLineExit;
+ TskBuf[id].alpha = 1.0f;
+- TskBuf[id].tx = (rand() % 256000) / 1000.0f - 128.0f;
+- TskBuf[id].ty = (rand() % 256000) / 1000.0f - 128.0f;
++ TskBuf[id].tx = cast(float)(rand() % 256000) / 1000.0f - 128.0f;
++ TskBuf[id].ty = cast(float)(rand() % 256000) / 1000.0f - 128.0f;
+ TskBuf[id].tx *= 2.0f;
+ TskBuf[id].ty *= 2.0f;
+ TskBuf[id].tx += TskBuf[id].px;
+ TskBuf[id].ty += TskBuf[id].py;
+- TskBuf[id].rot_add = (rand % 30) - 15;
++ TskBuf[id].rot_add = cast(float)(rand % 30) - 15;
+ if(!(TskBuf[id].rot_add - 15)) TskBuf[id].rot_add = -1;
+ else if(!(TskBuf[id].rot_add + 15)) TskBuf[id].rot_add = +1;
+ if(TskBuf[id].rot_add < 0) TskBuf[id].rot_add = PI / (TskBuf[id].rot_add - 15);
+diff -Naur a2k_src/src/enemy01.d a2k_src-p/src/enemy01.d
+--- a2k_src/src/enemy01.d 2008-02-06 01:35:46.000000000 +0100
++++ a2k_src-p/src/enemy01.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/03/27 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import SDL;
+ private import opengl;
+@@ -63,8 +63,8 @@
+ switch(TskBuf[id].step){
+ case 0:
+ TskBuf[id].tskid |= TSKID_ZAKO;
+- TskBuf[id].px = (rand() % 1536) - 768.0f;
+- TskBuf[id].py = (rand() % 1536) - 768.0f;
++ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
++ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
+ TskBuf[id].fp_int = null;
+ TskBuf[id].fp_draw = &TSKenemy01Draw;
+ TskBuf[id].fp_exit = &TSKenemy01Exit;
+diff -Naur a2k_src/src/enemy02.d a2k_src-p/src/enemy02.d
+--- a2k_src/src/enemy02.d 2008-02-06 01:35:48.000000000 +0100
++++ a2k_src-p/src/enemy02.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/04/11 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import SDL;
+ private import opengl;
+@@ -63,8 +63,8 @@
+ switch(TskBuf[id].step){
+ case 0:
+ TskBuf[id].tskid |= TSKID_ZAKO;
+- TskBuf[id].px = (rand() % 1536) - 768.0f;
+- TskBuf[id].py = (rand() % 1536) - 768.0f;
++ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
++ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
+ TskBuf[id].fp_int = null;
+ TskBuf[id].fp_draw = &TSKenemy02Draw;
+ TskBuf[id].fp_exit = &TSKenemy02Exit;
+diff -Naur a2k_src/src/enemy03.d a2k_src-p/src/enemy03.d
+--- a2k_src/src/enemy03.d 2008-02-06 01:35:52.000000000 +0100
++++ a2k_src-p/src/enemy03.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/04/11 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import SDL;
+ private import opengl;
+@@ -63,8 +63,8 @@
+ switch(TskBuf[id].step){
+ case 0:
+ TskBuf[id].tskid |= TSKID_ZAKO;
+- TskBuf[id].px = (rand() % 1536) - 768.0f;
+- TskBuf[id].py = (rand() % 1536) - 768.0f;
++ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
++ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
+ TskBuf[id].tid = ship_id;
+ TskBuf[id].fp_int = null;
+ TskBuf[id].fp_draw = &TSKenemy03Draw;
+diff -Naur a2k_src/src/enemy04.d a2k_src-p/src/enemy04.d
+--- a2k_src/src/enemy04.d 2008-02-06 01:35:56.000000000 +0100
++++ a2k_src-p/src/enemy04.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/04/11 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import SDL;
+ private import opengl;
+@@ -53,8 +53,8 @@
+ switch(TskBuf[id].step){
+ case 0:
+ TskBuf[id].tskid |= TSKID_ZAKO;
+- TskBuf[id].px = (rand() % 1536) - 768.0f;
+- TskBuf[id].py = (rand() % 1536) - 768.0f;
++ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
++ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
+ TskBuf[id].tid = ship_id;
+ TskBuf[id].fp_int = null;
+ TskBuf[id].fp_draw = &TSKenemy04Draw;
+@@ -132,14 +132,14 @@
+ TskBuf[id].vx = TskBuf[id].px;
+ TskBuf[id].vy = TskBuf[id].py;
+ if(!TskBuf[id].cnt){
+- TskBuf[id].tx = (rand() % 512) + 256.0f;
+- TskBuf[id].ty = (rand() % 512) + 256.0f;
++ TskBuf[id].tx = cast(float)(rand() % 512) + 256.0f;
++ TskBuf[id].ty = cast(float)(rand() % 512) + 256.0f;
+ if(TskBuf[id].px < ship_px) TskBuf[id].tx = +TskBuf[id].tx;
+ else TskBuf[id].tx = -TskBuf[id].tx;
+ if(TskBuf[id].py < ship_py) TskBuf[id].ty = +TskBuf[id].ty;
+ else TskBuf[id].ty = -TskBuf[id].ty;
+- if((rand() % 100) > 97) TskBuf[id].tx = -TskBuf[id].tx;
+- if((rand() % 100) > 97) TskBuf[id].ty = -TskBuf[id].ty;
++ if(cast(float)(rand() % 100) > 97) TskBuf[id].tx = -TskBuf[id].tx;
++ if(cast(float)(rand() % 100) > 97) TskBuf[id].ty = -TskBuf[id].ty;
+ TskBuf[id].tx = TskBuf[id].px + TskBuf[id].tx;
+ TskBuf[id].ty = TskBuf[id].py + TskBuf[id].ty;
+ if(TskBuf[id].tx < -ENEMY_AREAMAX) TskBuf[id].tx = -ENEMY_AREAMAX + 1.0f;
+diff -Naur a2k_src/src/enemy05.d a2k_src-p/src/enemy05.d
+--- a2k_src/src/enemy05.d 2008-02-06 01:35:58.000000000 +0100
++++ a2k_src-p/src/enemy05.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/05/30 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import SDL;
+ private import opengl;
+@@ -53,8 +53,8 @@
+ switch(TskBuf[id].step){
+ case 0:
+ TskBuf[id].tskid |= TSKID_ZAKO;
+- TskBuf[id].px = (rand() % 1536) - 768.0f;
+- TskBuf[id].py = (rand() % 1536) - 768.0f;
++ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
++ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
+ TskBuf[id].tid = ship_id;
+ TskBuf[id].fp_int = null;
+ TskBuf[id].fp_draw = &TSKenemy05Draw;
+@@ -127,42 +127,31 @@
+ }
+ }
+ /* 座標更新 */
+- if(TskBuf[id].px < ship_px){
+- if(TskBuf[id].vx > +0.0f) TskBuf[id].vx += 1.0f / SPEED_RATE * 2.0f;
+- else TskBuf[id].vx += 1.0f / SPEED_RATE * 1.5f;
+- if(TskBuf[id].vx > +MAX_SPEED) TskBuf[id].vx = +MAX_SPEED;
+- }else{
+- if(TskBuf[id].vx < +0.0f) TskBuf[id].vx -= 1.0f / SPEED_RATE * 2.0f;
+- else TskBuf[id].vx -= 1.0f / SPEED_RATE * 1.5f;
+- if(TskBuf[id].vx < -MAX_SPEED) TskBuf[id].vx = -MAX_SPEED;
+- }
+- if(TskBuf[id].py < ship_py){
+- if(TskBuf[id].vy > +0.0f) TskBuf[id].vy += 1.0f / SPEED_RATE * 2.0f;
+- else TskBuf[id].vy += 1.0f / SPEED_RATE * 1.5f;
+- if(TskBuf[id].vy > +MAX_SPEED) TskBuf[id].vy = +MAX_SPEED;
+- }else{
+- if(TskBuf[id].vy < +0.0f) TskBuf[id].vy -= 1.0f / SPEED_RATE * 2.0f;
+- else TskBuf[id].vy -= 1.0f / SPEED_RATE * 1.5f;
+- if(TskBuf[id].vy < -MAX_SPEED) TskBuf[id].vy = -MAX_SPEED;
+- }
+- TskBuf[id].px += TskBuf[id].vx;
+- TskBuf[id].py += TskBuf[id].vy;
+- if(TskBuf[id].px < -ENEMY_AREAMAX){
+- TskBuf[id].px = -ENEMY_AREAMAX;
+- TskBuf[id].vx = -TskBuf[id].vx / 2;
+- }
+- if(TskBuf[id].px > +ENEMY_AREAMAX){
+- TskBuf[id].px = +ENEMY_AREAMAX;
+- TskBuf[id].vx = -TskBuf[id].vx / 2;
+- }
+- if(TskBuf[id].py < -ENEMY_AREAMAX){
+- TskBuf[id].py = -ENEMY_AREAMAX;
+- TskBuf[id].vy = -TskBuf[id].vy / 2;
+- }
+- if(TskBuf[id].py > +ENEMY_AREAMAX){
+- TskBuf[id].py = +ENEMY_AREAMAX;
+- TskBuf[id].vy = -TskBuf[id].vy / 2;
+- }
++ TskBuf[id].vx = TskBuf[id].px;
++ TskBuf[id].vy = TskBuf[id].py;
++ if(!TskBuf[id].cnt){
++ TskBuf[id].tx = cast(float)(rand() % 512) + 256.0f;
++ TskBuf[id].ty = cast(float)(rand() % 512) + 256.0f;
++ if(TskBuf[id].px < ship_px) TskBuf[id].tx = +TskBuf[id].tx;
++ else TskBuf[id].tx = -TskBuf[id].tx;
++ if(TskBuf[id].py < ship_py) TskBuf[id].ty = +TskBuf[id].ty;
++ else TskBuf[id].ty = -TskBuf[id].ty;
++ if(cast(float)(rand() % 100) > 97) TskBuf[id].tx = -TskBuf[id].tx;
++ if(cast(float)(rand() % 100) > 97) TskBuf[id].ty = -TskBuf[id].ty;
++ TskBuf[id].tx = TskBuf[id].px + TskBuf[id].tx;
++ TskBuf[id].ty = TskBuf[id].py + TskBuf[id].ty;
++ if(TskBuf[id].tx < -ENEMY_AREAMAX) TskBuf[id].tx = -ENEMY_AREAMAX + 1.0f;
++ if(TskBuf[id].tx > +ENEMY_AREAMAX) TskBuf[id].tx = +ENEMY_AREAMAX - 1.0f;
++ if(TskBuf[id].ty < -ENEMY_AREAMAX) TskBuf[id].ty = -ENEMY_AREAMAX + 1.0f;
++ if(TskBuf[id].ty > +ENEMY_AREAMAX) TskBuf[id].ty = +ENEMY_AREAMAX - 1.0f;
++ TskBuf[id].cnt = 180;
++ }else{
++ TskBuf[id].cnt--;
++ }
++ TskBuf[id].px += (TskBuf[id].tx - TskBuf[id].px) / (180 / 4);
++ TskBuf[id].py += (TskBuf[id].ty - TskBuf[id].py) / (180 / 4);
++ TskBuf[id].vx -= TskBuf[id].px;
++ TskBuf[id].vy -= TskBuf[id].py;
+ TskBuf[id].rot = atan2(-TskBuf[id].vx, -TskBuf[id].vy);
+ break;
+ default:
+diff -Naur a2k_src/src/enemy06.d a2k_src-p/src/enemy06.d
+--- a2k_src/src/enemy06.d 2008-02-06 01:36:00.000000000 +0100
++++ a2k_src-p/src/enemy06.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/06/04 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import SDL;
+ private import opengl;
+@@ -65,8 +65,8 @@
+ switch(TskBuf[id].step){
+ case 0:
+ TskBuf[id].tskid |= TSKID_ZAKO;
+- TskBuf[id].px = (rand() % 1536) - 768.0f;
+- TskBuf[id].py = (rand() % 1536) - 768.0f;
++ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
++ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
+ TskBuf[id].tid = ship_id;
+ TskBuf[id].fp_int = null;
+ TskBuf[id].fp_draw = &TSKenemy06Draw;
+@@ -145,14 +145,14 @@
+ TskBuf[id].vx = TskBuf[id].px;
+ TskBuf[id].vy = TskBuf[id].py;
+ if(TskBuf[id].cnt == TskBuf[id].mov_cnt){
+- TskBuf[id].tx = (rand() % 512) + 256.0f;
+- TskBuf[id].ty = (rand() % 512) + 256.0f;
++ TskBuf[id].tx = cast(float)(rand() % 512) + 256.0f;
++ TskBuf[id].ty = cast(float)(rand() % 512) + 256.0f;
+ if(TskBuf[id].px < ship_px) TskBuf[id].tx = +TskBuf[id].tx;
+ else TskBuf[id].tx = -TskBuf[id].tx;
+ if(TskBuf[id].py < ship_py) TskBuf[id].ty = +TskBuf[id].ty;
+ else TskBuf[id].ty = -TskBuf[id].ty;
+- if((rand() % 100) > 97) TskBuf[id].tx = -TskBuf[id].tx;
+- if((rand() % 100) > 97) TskBuf[id].ty = -TskBuf[id].ty;
++ if(cast(float)(rand() % 100) > 97) TskBuf[id].tx = -TskBuf[id].tx;
++ if(cast(float)(rand() % 100) > 97) TskBuf[id].ty = -TskBuf[id].ty;
+ TskBuf[id].tx = TskBuf[id].px + TskBuf[id].tx;
+ TskBuf[id].ty = TskBuf[id].py + TskBuf[id].ty;
+ if(TskBuf[id].tx < -ENEMY_AREAMAX) TskBuf[id].tx = -ENEMY_AREAMAX + 1.0f;
+diff -Naur a2k_src/src/enemy07.d a2k_src-p/src/enemy07.d
+--- a2k_src/src/enemy07.d 2008-02-06 01:36:02.000000000 +0100
++++ a2k_src-p/src/enemy07.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/06/05 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import SDL;
+ private import opengl;
+@@ -63,8 +63,8 @@
+ switch(TskBuf[id].step){
+ case 0:
+ TskBuf[id].tskid |= TSKID_ZAKO;
+- TskBuf[id].px = (rand() % 1536) - 768.0f;
+- TskBuf[id].py = (rand() % 1536) - 768.0f;
++ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
++ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
+ TskBuf[id].tid = ship_id;
+ TskBuf[id].fp_int = null;
+ TskBuf[id].fp_draw = &TSKenemy07Draw;
+@@ -137,42 +137,31 @@
+ }
+ }
+ /* 座標更新 */
+- if(TskBuf[id].px < ship_px){
+- if(TskBuf[id].vx > +0.0f) TskBuf[id].vx += 1.0f / SPEED_RATE * 2.0f;
+- else TskBuf[id].vx += 1.0f / SPEED_RATE * 1.5f;
+- if(TskBuf[id].vx > +MAX_SPEED) TskBuf[id].vx = +MAX_SPEED;
+- }else{
+- if(TskBuf[id].vx < +0.0f) TskBuf[id].vx -= 1.0f / SPEED_RATE * 2.0f;
+- else TskBuf[id].vx -= 1.0f / SPEED_RATE * 1.5f;
+- if(TskBuf[id].vx < -MAX_SPEED) TskBuf[id].vx = -MAX_SPEED;
+- }
+- if(TskBuf[id].py < ship_py){
+- if(TskBuf[id].vy > +0.0f) TskBuf[id].vy += 1.0f / SPEED_RATE * 2.0f;
+- else TskBuf[id].vy += 1.0f / SPEED_RATE * 1.5f;
+- if(TskBuf[id].vy > +MAX_SPEED) TskBuf[id].vy = +MAX_SPEED;
+- }else{
+- if(TskBuf[id].vy < +0.0f) TskBuf[id].vy -= 1.0f / SPEED_RATE * 2.0f;
+- else TskBuf[id].vy -= 1.0f / SPEED_RATE * 1.5f;
+- if(TskBuf[id].vy < -MAX_SPEED) TskBuf[id].vy = -MAX_SPEED;
+- }
+- TskBuf[id].px += TskBuf[id].vx;
+- TskBuf[id].py += TskBuf[id].vy;
+- if(TskBuf[id].px < -ENEMY_AREAMAX){
+- TskBuf[id].px = -ENEMY_AREAMAX;
+- TskBuf[id].vx = -TskBuf[id].vx / 2;
+- }
+- if(TskBuf[id].px > +ENEMY_AREAMAX){
+- TskBuf[id].px = +ENEMY_AREAMAX;
+- TskBuf[id].vx = -TskBuf[id].vx / 2;
+- }
+- if(TskBuf[id].py < -ENEMY_AREAMAX){
+- TskBuf[id].py = -ENEMY_AREAMAX;
+- TskBuf[id].vy = -TskBuf[id].vy / 2;
+- }
+- if(TskBuf[id].py > +ENEMY_AREAMAX){
+- TskBuf[id].py = +ENEMY_AREAMAX;
+- TskBuf[id].vy = -TskBuf[id].vy / 2;
+- }
++ TskBuf[id].vx = TskBuf[id].px;
++ TskBuf[id].vy = TskBuf[id].py;
++ if(!TskBuf[id].cnt){
++ TskBuf[id].tx = cast(float)(rand() % 512) + 256.0f;
++ TskBuf[id].ty = cast(float)(rand() % 512) + 256.0f;
++ if(TskBuf[id].px < ship_px) TskBuf[id].tx = +TskBuf[id].tx;
++ else TskBuf[id].tx = -TskBuf[id].tx;
++ if(TskBuf[id].py < ship_py) TskBuf[id].ty = +TskBuf[id].ty;
++ else TskBuf[id].ty = -TskBuf[id].ty;
++ if(cast(float)(rand() % 100) > 97) TskBuf[id].tx = -TskBuf[id].tx;
++ if(cast(float)(rand() % 100) > 97) TskBuf[id].ty = -TskBuf[id].ty;
++ TskBuf[id].tx = TskBuf[id].px + TskBuf[id].tx;
++ TskBuf[id].ty = TskBuf[id].py + TskBuf[id].ty;
++ if(TskBuf[id].tx < -ENEMY_AREAMAX) TskBuf[id].tx = -ENEMY_AREAMAX + 1.0f;
++ if(TskBuf[id].tx > +ENEMY_AREAMAX) TskBuf[id].tx = +ENEMY_AREAMAX - 1.0f;
++ if(TskBuf[id].ty < -ENEMY_AREAMAX) TskBuf[id].ty = -ENEMY_AREAMAX + 1.0f;
++ if(TskBuf[id].ty > +ENEMY_AREAMAX) TskBuf[id].ty = +ENEMY_AREAMAX - 1.0f;
++ TskBuf[id].cnt = 180;
++ }else{
++ TskBuf[id].cnt--;
++ }
++ TskBuf[id].px += (TskBuf[id].tx - TskBuf[id].px) / (180 / 4);
++ TskBuf[id].py += (TskBuf[id].ty - TskBuf[id].py) / (180 / 4);
++ TskBuf[id].vx -= TskBuf[id].px;
++ TskBuf[id].vy -= TskBuf[id].py;
+ TskBuf[id].rot = atan2(-TskBuf[id].vx, -TskBuf[id].vy);
+ break;
+ default:
+diff -Naur a2k_src/src/enemy08.d a2k_src-p/src/enemy08.d
+--- a2k_src/src/enemy08.d 2008-02-06 01:36:04.000000000 +0100
++++ a2k_src-p/src/enemy08.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/06/05 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import SDL;
+ private import opengl;
+@@ -65,8 +65,8 @@
+ switch(TskBuf[id].step){
+ case 0:
+ TskBuf[id].tskid |= TSKID_ZAKO;
+- TskBuf[id].px = (rand() % 1536) - 768.0f;
+- TskBuf[id].py = (rand() % 1536) - 768.0f;
++ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
++ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
+ TskBuf[id].tid = ship_id;
+ TskBuf[id].fp_int = null;
+ TskBuf[id].fp_draw = &TSKenemy08Draw;
+diff -Naur a2k_src/src/enemy.d a2k_src-p/src/enemy.d
+--- a2k_src/src/enemy.d 2008-02-06 01:35:42.000000000 +0100
++++ a2k_src-p/src/enemy.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/04/14 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import SDL;
+ private import opengl;
+ private import util_sdl;
+@@ -158,6 +158,7 @@
+ return;
+ }
+
++
+ void TSKeshotInt(int id)
+ {
+ TskBuf[id].step = -1;
+@@ -165,6 +166,7 @@
+ return;
+ }
+
++
+ void TSKeshotDrawSimple(int id)
+ {
+ float[XYZ] pos;
+@@ -198,6 +200,7 @@
+ glEnd();
+ }
+
++
+ void TSKeshotDrawActive(int id)
+ {
+ float[XYZ] pos;
+@@ -231,6 +234,7 @@
+ glEnd();
+ }
+
++
+ void TSKeshotExit(int id)
+ {
+ BulletCommand cmd = TskBuf[id].bullet_command;
+@@ -243,6 +247,7 @@
+ }
+ }
+
++
+ float getShipDirection(int id)
+ {
+ float px,py;
+@@ -257,3 +262,4 @@
+ return dir;
+ }
+
++
+diff -Naur a2k_src/src/init.d a2k_src-p/src/init.d
+--- a2k_src/src/init.d 2005-05-19 22:31:30.000000000 +0200
++++ a2k_src-p/src/init.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2003/12/01 jumpei isshiki
+ */
+
+-private import std.stdio;
++private import std.c.stdio;
+ private import std.stream;
+ private import util_sdl;
+ private import util_snd;
+@@ -101,7 +101,7 @@
+ fd.open("score.dat");
+ if(fd.size() != 12){
+ fd.close();
+- writefln("score.dat initialized");
++ printf("score.dat initialized");
+ fd.create("score.dat");
+ fd.write(high_easy);
+ fd.write(high_normal);
+@@ -112,7 +112,7 @@
+ fd.read(high_hard);
+ }
+ } catch (Error e) {
+- writefln("score.dat initialized");
++ printf("score.dat initialized");
+ fd.create("score.dat");
+ fd.write(high_easy);
+ fd.write(high_normal);
+@@ -126,7 +126,7 @@
+ try {
+ if(fd.size() != 12){
+ fd.close();
+- writefln("config.dat initialized");
++ printf("config.dat initialized");
+ fd.create("config.dat");
+ fd.write(pad_type);
+ fd.write(vol_se);
+@@ -139,7 +139,7 @@
+ volumeSNDmusic(vol_music);
+ }
+ } catch (Error e) {
+- writefln("config.dat initialized");
++ printf("config.dat initialized");
+ fd.create("config.dat");
+ fd.write(pad_type);
+ fd.write(vol_se);
+diff -Naur a2k_src/src/luminous.d a2k_src-p/src/luminous.d
+--- a2k_src/src/luminous.d 2008-02-06 01:39:52.000000000 +0100
++++ a2k_src-p/src/luminous.d 2009-08-27 15:18:28.000000000 +0200
+@@ -7,7 +7,7 @@
+ */
+
+ private import std.math;
+-private import std.string;
++private import std.c.string;
+ private import opengl;
+ private import util_sdl;
+ private import task;
+diff -Naur a2k_src/src/main.d a2k_src-p/src/main.d
+--- a2k_src/src/main.d 2008-02-07 00:42:58.000000000 +0100
++++ a2k_src-p/src/main.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,8 +6,9 @@
+ 2003/11/28 jumpei isshiki
+ */
+
+-private import std.c.windows.windows;
+-private import SDL;
++//private import std.c.windows.windows;
++private import SDL;
++private import SDL_Keysym;
+ private import opengl;
+ private import util_sdl;
+ private import util_pad;
+@@ -31,25 +32,29 @@
+ int pause = 0;
+ int pause_flag = 0;
+ int skip = 0;
+-
++/*
+ extern (Windows)
+ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
+ {
++*/
++public int main(char[][] args) {
+ int result;
+-
++/*
+ gc_init();
+ _minit();
+
+ try{
+ _moduleCtor();
+- _moduleUnitTests();
++ _moduleUnitTests();
++*/
+ result = boot();
++/*
+ }catch (Object o){
+ MessageBoxA(null, cast(char*)o.toString(), "Error", MB_OK | MB_ICONEXCLAMATION);
+ result = 0;
+ }
+ gc_term();
+-
++*/
+ return result;
+ }
+
+diff -Naur a2k_src/src/middle01.d a2k_src-p/src/middle01.d
+--- a2k_src/src/middle01.d 2008-02-06 01:36:06.000000000 +0100
++++ a2k_src-p/src/middle01.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/05/05 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import std.string;
+ private import SDL;
+diff -Naur a2k_src/src/middle02.d a2k_src-p/src/middle02.d
+--- a2k_src/src/middle02.d 2008-02-06 01:36:08.000000000 +0100
++++ a2k_src-p/src/middle02.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/06/03 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import std.string;
+ private import SDL;
+diff -Naur a2k_src/src/middle03.d a2k_src-p/src/middle03.d
+--- a2k_src/src/middle03.d 2008-02-06 01:36:12.000000000 +0100
++++ a2k_src-p/src/middle03.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/06/07 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import std.string;
+ private import SDL;
+diff -Naur a2k_src/src/middle04.d a2k_src-p/src/middle04.d
+--- a2k_src/src/middle04.d 2008-02-06 01:36:14.000000000 +0100
++++ a2k_src-p/src/middle04.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/07/05 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import std.string;
+ private import SDL;
+diff -Naur a2k_src/src/middle05.d a2k_src-p/src/middle05.d
+--- a2k_src/src/middle05.d 2008-02-06 01:36:16.000000000 +0100
++++ a2k_src-p/src/middle05.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/07/06 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.random;
+ private import std.string;
+ private import SDL;
+diff -Naur a2k_src/src/ship.d a2k_src-p/src/ship.d
+--- a2k_src/src/ship.d 2008-02-12 23:41:50.000000000 +0100
++++ a2k_src-p/src/ship.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2003/12/01 jumpei isshiki
+ */
+
+-private import std.math;
++private import std.c.math;
+ private import std.intrinsic;
+ private import std.random;
+ private import SDL;
+diff -Naur a2k_src/src/stg.d a2k_src-p/src/stg.d
+--- a2k_src/src/stg.d 2005-05-19 22:52:14.000000000 +0200
++++ a2k_src-p/src/stg.d 2009-08-27 15:18:28.000000000 +0200
+@@ -91,25 +91,36 @@
+ void TSKstgCtrl(int id)
+ {
+ switch(TskBuf[id].step){
+- case 0:
++ case 0:
+ area_num = AREA_01;
+- scene_num = SCENE_01;
+- debug{
+- //area_num = AREA_02;
+- //area_num = AREA_03;
+- //area_num = AREA_04;
+- //area_num = AREA_05;
+- //scene_num = SCENE_02;
+- //scene_num = SCENE_03;
+- //scene_num = SCENE_04;
+- //scene_num = SCENE_05;
+- //scene_num = SCENE_06;
+- //scene_num = SCENE_07;
+- //scene_num = SCENE_08;
+- //scene_num = SCENE_09;
+- //scene_num = SCENE_10;
+- }
+- stg_bgm = -1;
++ scene_num = SCENE_01;
++
++ switch(area_num){
++ case AREA_01:
++ stg_ctrl = STG_MAIN;
++ setTSK(GROUP_01,&TSKstg01);
++ break;
++ case AREA_02:
++ stg_ctrl = STG_MAIN;
++ setTSK(GROUP_01,&TSKstg02);
++ break;
++ case AREA_03:
++ stg_ctrl = STG_MAIN;
++ setTSK(GROUP_01,&TSKstg03);
++ break;
++ case AREA_04:
++ stg_ctrl = STG_MAIN;
++ setTSK(GROUP_01,&TSKstg04);
++ break;
++ case AREA_05:
++ stg_ctrl = STG_MAIN;
++ setTSK(GROUP_01,&TSKstg05);
++ break;
++ default:
++ g_step = GSTEP_CLEAR;
++ break;
++ }
++ stg_bgm = -1;
+ stg_ctrl = STG_INIT;
+ TskBuf[id].step++;
+ break;
+@@ -177,7 +188,7 @@
+ {
+ switch(TskBuf[id].step){
+ case 0:
+- stg_ctrl = STG_INIT;
++// stg_ctrl = ;
+ TskBuf[id].step++;
+ break;
+ case 1:
+diff -Naur a2k_src/src/system.d a2k_src-p/src/system.d
+--- a2k_src/src/system.d 2005-05-19 22:31:20.000000000 +0200
++++ a2k_src-p/src/system.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/03/24 jumpei isshiki
+ */
+
+-private import std.stdio;
++private import std.c.stdio;
+ private import std.math;
+ private import std.random;
+ private import std.string;
+@@ -22,6 +22,11 @@
+ private import stg;
+ private import bg;
+ private import ship;
++
++const real PI = 0x1.921fb54442d1846ap+1;
++const real PI_2 = 1.57079632679489661923;
++const real PI_4 = 0.78539816339744830962;
++const real SQRT2 = 1.41421356237309504880;
+
+ private char[] str_buf;
+ private int wrk1_time;
+diff -Naur a2k_src/src/task.d a2k_src-p/src/task.d
+--- a2k_src/src/task.d 2008-02-07 00:38:58.000000000 +0100
++++ a2k_src-p/src/task.d 2009-08-27 15:18:28.000000000 +0200
+@@ -153,7 +153,9 @@
+ TskBuf[i].fp_exit = null;
+ TskBuf[i].image = null;
+ TskBuf[i].bullet_command = null;
+- TskBuf[i].bullet_state = null;
++ TskBuf[i].bullet_state = null;
++ TskBuf[i].bullet_accx = 0;
++ TskBuf[i].bullet_accy = 0;
+ }
+ TskBuf[i].tskid = TSKID_NONE;
+ TskBuf[i].entry = -1;
+diff -Naur a2k_src/src/title.d a2k_src-p/src/title.d
+--- a2k_src/src/title.d 2008-02-12 23:50:14.000000000 +0100
++++ a2k_src-p/src/title.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,7 +6,7 @@
+ 2004/04/08 jumpei isshiki
+ */
+
+-private import std.stdio;
++private import std.c.stdio;
+ private import std.math;
+ private import std.string;
+ private import SDL;
+diff -Naur a2k_src/src/util_ascii.d a2k_src-p/src/util_ascii.d
+--- a2k_src/src/util_ascii.d 2005-05-19 22:30:50.000000000 +0200
++++ a2k_src-p/src/util_ascii.d 2009-08-27 15:18:28.000000000 +0200
+@@ -13,7 +13,15 @@
+
+ const float ASC_SIZE = (16.0f + 2.0f);
+
+-private float[][] ascii_font = [
++float[][] ascii_font;
++
++
++
++private char[] ascii_dict = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.:!?\"'-=+ 0123456789";
++
++void initASCII()
++{
++static float[][] af = [
+ /* 'A' */
+ [
+ 3, 0, 11, 2,
+@@ -328,10 +336,14 @@
+ ],
+ ];
+
+-private char[] ascii_dict = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.:!?\"'-=+ 0123456789";
++ ascii_font.length = af.length;
++ for (int i = 0; i < ascii_font.length; i++) {
++ ascii_font[i].length = af[i].length;
++ for (int j = 0; j < ascii_font[i].length; j++) {
++ ascii_font[i][j] = af[i][j];
++ }
++ }
+
+-void initASCII()
+-{
+ for(int i = 0; i < ascii_font.length; i++){
+ for(int j = 0; j < ascii_font[i].length; j += 4){
+ ascii_font[i][j+2] += 1.0f;
+diff -Naur a2k_src/src/util_pad.d a2k_src-p/src/util_pad.d
+--- a2k_src/src/util_pad.d 2008-02-12 23:46:38.000000000 +0100
++++ a2k_src-p/src/util_pad.d 2009-08-27 15:18:28.000000000 +0200
+@@ -7,7 +7,8 @@
+ */
+
+ private import SDL;
+-
++private import SDL_Keysym;
++private import SDL_keyboard;
+ enum{
+ PAD_UP = 0x01,
+ PAD_DOWN = 0x02,
+diff -Naur a2k_src/src/util_sdl.d a2k_src-p/src/util_sdl.d
+--- a2k_src/src/util_sdl.d 2008-02-06 01:41:02.000000000 +0100
++++ a2k_src-p/src/util_sdl.d 2009-08-27 15:18:28.000000000 +0200
+@@ -6,9 +6,12 @@
+ 2003/11/28 jumpei isshiki
+ */
+
++private import std.stdio;
+ private import std.string;
+-private import SDL;
++private import SDL;
++private import SDL_mouse;
+ private import opengl;
++private import util_pad;
+ private import define;
+
+ enum{
+@@ -30,11 +33,18 @@
+ EX,
+ EY,
+ }
+-
++
++struct VEC_POS {
++ float px;
++ float py;
++ float pz;
++}
+
+ SDL_Surface* primary;
+ SDL_Surface*[] offscreen;
+-
++
++const float SCREEN_RATIOX = cast(float)(SCREEN_X / 2.0f);
++const float SCREEN_RATIOY = cast(float)(SCREEN_Y / 2.0f);
+ const float BASE_Z = 2.0f;
+ float cam_scr = -0.75f;
+ float cam_pos;
+@@ -43,20 +53,27 @@
+ private int height = SCREEN_Y;
+ private float nearPlane = 0.0f;
+ private float farPlane = 1000.0f;
+-
++private GLuint TEXTURE_NONE = 0xffffffff;
+ private GLuint[] tex_bank;
+
+-int initSDL()
++int initSDL()
++
+ {
+ if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_JOYSTICK) < 0){
+ return 0;
+ }
+
+ Uint32 videoFlags;
+- videoFlags = SDL_OPENGL | SDL_FULLSCREEN;
++// videoFlags = SDL_OPENGL | SDL_FULLSCREEN;
+ //videoFlags = SDL_OPENGL | SDL_RESIZABLE;
+ debug{
+- videoFlags = SDL_OPENGL | SDL_RESIZABLE;
++ if((pads & PAD_BUTTON1)){
++ videoFlags = SDL_OPENGL | SDL_FULLSCREEN;
++ }else{
++ videoFlags = SDL_OPENGL | SDL_RESIZABLE;
++ }
++ }else{
++ videoFlags = SDL_OPENGL | SDL_FULLSCREEN;
+ }
+ primary = SDL_SetVideoMode(width, height, 0, videoFlags);
+ if(primary == null){
+@@ -67,14 +84,15 @@
+ tex_bank.length = SURFACE_MAX;
+ for(int i = 0; i < SURFACE_MAX; i++){
+ offscreen[i] = null;
+- tex_bank[i] = cast(GLuint)-1;
++ tex_bank[i] = TEXTURE_NONE;
+ }
+
+ glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+ resizedSDL(width, height);
+ SDL_ShowCursor(SDL_DISABLE);
+
+- SDL_WM_SetCaption(cast(char*)PROJECT_NAME, null);
++ SDL_WM_SetCaption(cast(char*)PROJECT_NAME, null);
++ SDL_WM_SetIcon(SDL_LoadBMP("icon.bmp"), null);
+
+ return 1;
+ }
+@@ -96,9 +114,9 @@
+ SDL_ShowCursor(SDL_ENABLE);
+ SDL_Quit();
+ }
++
+
+-
+-void readSDLtexture(char[] fname, int bank)
++void readSDLtexture(char[] fname, int bank)
+ {
+ offscreen[bank] = SDL_LoadBMP(toStringz(fname));
+ if(offscreen[bank]){
+@@ -110,31 +128,28 @@
+ }
+ }
+
+-
+-void bindSDLtexture(int bank)
++void bindSDLtexture(int bank)
+ {
+- if(tex_bank[bank] != -1) glBindTexture(GL_TEXTURE_2D, tex_bank[bank]);
++ if(tex_bank[bank] != TEXTURE_NONE) glBindTexture(GL_TEXTURE_2D, tex_bank[bank]);
+ }
+
+-
+-void clearSDL()
++void clearSDL()
+ {
+ glClear(GL_COLOR_BUFFER_BIT);
+ }
+
+-
+-void flipSDL()
++void flipSDL()
+ {
+ glFlush();
+ SDL_GL_SwapBuffers();
+ }
+
+-
+-void resizedSDL(int w, int h)
++void resizedSDL(int w, int h)
+ {
+ glViewport(0, 0, w, h);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
++ w = (w ? w : 1);
+ glFrustum(-nearPlane,nearPlane,
+ -nearPlane * h / w,
+ nearPlane * h / w,
diff --git a/games-action/area2048/files/area2048-1.03.diff b/games-action/area2048/files/area2048-1.03.diff
deleted file mode 100644
index 4b12836..0000000
--- a/games-action/area2048/files/area2048-1.03.diff
+++ /dev/null
@@ -1,2469 +0,0 @@
-diff -Naur a2k-org/a2k_src/import/opengl.d a2k/a2k_src/import/opengl.d
---- a2k-org/a2k_src/import/opengl.d 2008-02-12 22:20:18.000000000 +0100
-+++ a2k/a2k_src/import/opengl.d 2008-10-07 10:47:18.000000000 +0200
-@@ -1,16 +1,6 @@
--version (Win32) {
-- import std.c.windows.windows;
--}
--extern(System):
--
--/* Please use this code with old D compiler.
--version (Win32) {
-- extern(Windows):
--}
--else {
-+
- extern(C):
--}
--*/
-+
-
- alias uint GLenum;
- alias ubyte GLboolean;
-@@ -1122,7 +1112,7 @@
- /*************************************************************/
-
- void /*APIENTRY*/glAccum (GLenum op, GLfloat value);
--void /*APIENTRY*/glAlphaFunc (GLenum func, GLclampf cref);
-+void /*APIENTRY*/glAlphaFunc (GLenum func, GLclampf);
- GLboolean /*APIENTRY*/glAreTexturesResident (GLsizei n, GLuint *textures, GLboolean *residences);
- void /*APIENTRY*/glArrayElement (GLint i);
- void /*APIENTRY*/glBegin (GLenum mode);
-@@ -1375,7 +1365,7 @@
- void /*APIENTRY*/glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
- void /*APIENTRY*/glSelectBuffer (GLsizei size, GLuint *buffer);
- void /*APIENTRY*/glShadeModel (GLenum mode);
--void /*APIENTRY*/glStencilFunc (GLenum func, GLint cref, GLuint mask);
-+void /*APIENTRY*/glStencilFunc (GLenum func, GLint, GLuint mask);
- void /*APIENTRY*/glStencilMask (GLuint mask);
- void /*APIENTRY*/glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
- void /*APIENTRY*/glTexCoord1d (GLdouble s);
-diff -Naur a2k-org/a2k_src/import/openglu.d a2k/a2k_src/import/openglu.d
---- a2k-org/a2k_src/import/openglu.d 2008-02-12 22:20:14.000000000 +0100
-+++ a2k/a2k_src/import/openglu.d 2008-10-07 10:47:18.000000000 +0200
-@@ -1,15 +1,6 @@
--import opengl;
-
--extern(System):
--
--/* Please use this code with old D compiler.
--version (Win32) {
-- extern(Windows):
--}
--else {
- extern(C):
--}
--*/
-+
-
- GLubyte* gluErrorString (
- GLenum errCode);
-diff -Naur a2k-org/a2k_src/import/SDL_active.d a2k/a2k_src/import/SDL_active.d
---- a2k-org/a2k_src/import/SDL_active.d 2006-07-26 23:24:30.000000000 +0200
-+++ a2k/a2k_src/import/SDL_active.d 2002-01-04 15:25:02.000000000 +0100
-@@ -22,7 +22,7 @@
-
- /* Include file for SDL application focus event handling */
-
--public import SDL_types;
-+import SDL_types;
-
- extern(C):
-
-diff -Naur a2k-org/a2k_src/import/SDL_audio.d a2k/a2k_src/import/SDL_audio.d
---- a2k-org/a2k_src/import/SDL_audio.d 2006-07-26 23:24:40.000000000 +0200
-+++ a2k/a2k_src/import/SDL_audio.d 2002-05-22 07:38:58.000000000 +0200
-@@ -20,10 +20,10 @@
- slouken@devolution.com
- */
-
--public import SDL_types;
--public import SDL_error;
--public import SDL_rwops;
--public import SDL_byteorder;
-+import SDL_types;
-+import SDL_error;
-+import SDL_rwops;
-+import SDL_byteorder;
-
- extern(C):
-
-diff -Naur a2k-org/a2k_src/import/SDL_cdrom.d a2k/a2k_src/import/SDL_cdrom.d
---- a2k-org/a2k_src/import/SDL_cdrom.d 2006-07-26 23:24:42.000000000 +0200
-+++ a2k/a2k_src/import/SDL_cdrom.d 2002-05-22 07:44:28.000000000 +0200
-@@ -22,7 +22,7 @@
-
- /* This is the CD-audio control API for Simple DirectMedia Layer */
-
--public import SDL_types;
-+import SDL_types;
-
- extern(C):
-
-diff -Naur a2k-org/a2k_src/import/SDL.d a2k/a2k_src/import/SDL.d
---- a2k-org/a2k_src/import/SDL.d 2006-07-26 23:24:12.000000000 +0200
-+++ a2k/a2k_src/import/SDL.d 2008-10-07 10:47:18.000000000 +0200
-@@ -33,60 +33,60 @@
- public import SDL_byteorder;
- public import SDL_Version;
-
--extern(C):
--
--/* As of version 0.5, SDL is loaded dynamically into the application */
--
--/* These are the flags which may be passed to SDL_Init() -- you should
-- specify the subsystems which you will be using in your application.
--*/
--const uint SDL_INIT_TIMER = 0x00000001;
--const uint SDL_INIT_AUDIO = 0x00000010;
--const uint SDL_INIT_VIDEO = 0x00000020;
--const uint SDL_INIT_CDROM = 0x00000100;
--const uint SDL_INIT_JOYSTICK = 0x00000200;
--const uint SDL_INIT_NOPARACHUTE = 0x00100000; /* Don't catch fatal signals */
--const uint SDL_INIT_EVENTTHREAD = 0x01000000; /* Not supported on all OS's */
--const uint SDL_INIT_EVERYTHING = 0x0000FFFF;
--
--/* This function loads the SDL dynamically linked library and initializes
-- * the subsystems specified by 'flags' (and those satisfying dependencies)
-- * Unless the SDL_INIT_NOPARACHUTE flag is set, it will install cleanup
-- * signal handlers for some commonly ignored fatal signals (like SIGSEGV)
-- */
--int SDL_Init(Uint32 flags);
--
--/* This function initializes specific SDL subsystems */
--int SDL_InitSubSystem(Uint32 flags);
--
--/* This function cleans up specific SDL subsystems */
--void SDL_QuitSubSystem(Uint32 flags);
--
--/* This function returns mask of the specified subsystems which have
-- been initialized.
-- If 'flags' is 0, it returns a mask of all initialized subsystems.
--*/
--Uint32 SDL_WasInit(Uint32 flags);
--
--/* This function cleans up all initialized subsystems and unloads the
-- * dynamically linked library. You should call it upon all exit conditions.
-- */
--void SDL_Quit();
--
--void SDL_SetModuleHandle(void *hInst);
--//extern(Windows) void* GetModuleHandle(char*);
--extern(Windows) void* GetModuleHandleA(char*);
--
--static this()
--{
-- /* Load SDL dynamic link library */
-- if (SDL_Init(SDL_INIT_NOPARACHUTE) < 0)
-- throw new Error("Error loading SDL");
--// SDL_SetModuleHandle(GetModuleHandle(null));
-- SDL_SetModuleHandle(GetModuleHandleA(null));
--}
--
--static ~this()
--{
-- SDL_Quit();
--}
-+extern(C):
-+
-+/* As of version 0.5, SDL is loaded dynamically into the application */
-+
-+/* These are the flags which may be passed to SDL_Init() -- you should
-+ specify the subsystems which you will be using in your application.
-+*/
-+const uint SDL_INIT_TIMER = 0x00000001;
-+const uint SDL_INIT_AUDIO = 0x00000010;
-+const uint SDL_INIT_VIDEO = 0x00000020;
-+const uint SDL_INIT_CDROM = 0x00000100;
-+const uint SDL_INIT_JOYSTICK = 0x00000200;
-+const uint SDL_INIT_NOPARACHUTE = 0x00100000; /* Don't catch fatal signals */
-+const uint SDL_INIT_EVENTTHREAD = 0x01000000; /* Not supported on all OS's */
-+const uint SDL_INIT_EVERYTHING = 0x0000FFFF;
-+
-+/* This function loads the SDL dynamically linked library and initializes
-+ * the subsystems specified by 'flags' (and those satisfying dependencies)
-+ * Unless the SDL_INIT_NOPARACHUTE flag is set, it will install cleanup
-+ * signal handlers for some commonly ignored fatal signals (like SIGSEGV)
-+ */
-+int SDL_Init(Uint32 flags);
-+
-+/* This function initializes specific SDL subsystems */
-+int SDL_InitSubSystem(Uint32 flags);
-+
-+/* This function cleans up specific SDL subsystems */
-+void SDL_QuitSubSystem(Uint32 flags);
-+
-+/* This function returns mask of the specified subsystems which have
-+ been initialized.
-+ If 'flags' is 0, it returns a mask of all initialized subsystems.
-+*/
-+Uint32 SDL_WasInit(Uint32 flags);
-+
-+/* This function cleans up all initialized subsystems and unloads the
-+ * dynamically linked library. You should call it upon all exit conditions.
-+ */
-+void SDL_Quit();
-+
-+/+
-+void SDL_SetModuleHandle(void *hInst);
-+extern(Windows) void* GetModuleHandle(char*);
-+
-+static this()
-+{
-+ /* Load SDL dynamic link library */
-+ if (SDL_Init(SDL_INIT_NOPARACHUTE) < 0)
-+ throw new Error("Error loading SDL");
-+ SDL_SetModuleHandle(GetModuleHandle(null));
-+}
-+
-+static ~this()
-+{
-+ SDL_Quit();
-+}
-++/
-diff -Naur a2k-org/a2k_src/import/SDL_endian.d a2k/a2k_src/import/SDL_endian.d
---- a2k-org/a2k_src/import/SDL_endian.d 2006-09-14 01:57:50.000000000 +0200
-+++ a2k/a2k_src/import/SDL_endian.d 2004-05-08 12:55:52.000000000 +0200
-@@ -34,9 +34,9 @@
- and other data sources.
- */
-
--public import SDL_types;
--public import SDL_rwops;
--public import SDL_byteorder;
-+import SDL_types;
-+import SDL_rwops;
-+import SDL_byteorder;
-
- extern(C):
-
-@@ -47,7 +47,7 @@
- */
-
- Uint16 SDL_Swap16(Uint16 D) {
-- return cast(Uint16)((D<<8)|(D>>8));
-+ return((D<<8)|(D>>8));
- }
-
- Uint32 SDL_Swap32(Uint32 D) {
-diff -Naur a2k-org/a2k_src/import/SDL_events.d a2k/a2k_src/import/SDL_events.d
---- a2k-org/a2k_src/import/SDL_events.d 2006-07-26 23:25:46.000000000 +0200
-+++ a2k/a2k_src/import/SDL_events.d 2008-10-07 10:47:18.000000000 +0200
-@@ -22,12 +22,12 @@
-
- /* Include file for SDL event handling */
-
--public import SDL_types;
--public import SDL_active;
--public import SDL_keyboard;
--public import SDL_mouse;
--public import SDL_joystick;
--public import SDL_syswm;
-+import SDL_types;
-+import SDL_active;
-+import SDL_keyboard;
-+import SDL_mouse;
-+import SDL_joystick;
-+import SDL_syswm;
-
- extern(C):
-
-@@ -304,7 +304,7 @@
- If 'state' is set to SDL_QUERY, SDL_EventState() will return the
- current processing state of the specified event.
- */
--const int SDL_QUERY = -1;
-+const uint SDL_QUERY = -1;
- const uint SDL_IGNORE = 0;
- const uint SDL_DISABLE = 0;
- const uint SDL_ENABLE = 1;
-diff -Naur a2k-org/a2k_src/import/SDL_image.d a2k/a2k_src/import/SDL_image.d
---- a2k-org/a2k_src/import/SDL_image.d 2006-07-26 23:24:58.000000000 +0200
-+++ a2k/a2k_src/import/SDL_image.d 2004-05-08 14:09:32.000000000 +0200
-@@ -26,7 +26,7 @@
-
- /* A simple library to load images of various formats as SDL surfaces */
-
--public import SDL;
-+import SDL;
-
- extern (C) {
-
-diff -Naur a2k-org/a2k_src/import/SDL_joystick.d a2k/a2k_src/import/SDL_joystick.d
---- a2k-org/a2k_src/import/SDL_joystick.d 2006-07-26 23:25:10.000000000 +0200
-+++ a2k/a2k_src/import/SDL_joystick.d 2002-01-04 15:24:10.000000000 +0100
-@@ -22,7 +22,7 @@
-
- /* Include file for SDL joystick event handling */
-
--public import SDL_types;
-+import SDL_types;
-
- extern(C):
-
-diff -Naur a2k-org/a2k_src/import/SDL_keyboard.d a2k/a2k_src/import/SDL_keyboard.d
---- a2k-org/a2k_src/import/SDL_keyboard.d 2006-07-26 23:25:14.000000000 +0200
-+++ a2k/a2k_src/import/SDL_keyboard.d 2002-01-04 15:28:12.000000000 +0100
-@@ -22,11 +22,11 @@
-
- /* Include file for SDL keyboard event handling */
-
--public import SDL_types;
-+import SDL_types;
- // !!! A hack! struct SDL_keysym is defined in this module,
- // !!! so we need to resolve the nameclash...
- // !!! Definitely won't work on *NIX but for now will do.
--public import SDL_Keysym;
-+import SDL_Keysym;
-
- extern(C):
-
-diff -Naur a2k-org/a2k_src/import/SDL_keysym.d a2k/a2k_src/import/SDL_keysym.d
---- a2k-org/a2k_src/import/SDL_keysym.d 2002-01-04 23:31:22.000000000 +0100
-+++ a2k/a2k_src/import/SDL_keysym.d 1970-01-01 01:00:00.000000000 +0100
-@@ -1,308 +0,0 @@
--/*
-- SDL - Simple DirectMedia Layer
-- Copyright (C) 1997, 1998, 1999, 2000, 2001 Sam Lantinga
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Library General Public
-- License as published by the Free Software Foundation; either
-- version 2 of the License, or (at your option) any later version.
--
-- This library 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
-- Library General Public License for more details.
--
-- You should have received a copy of the GNU Library General Public
-- License along with this library; if not, write to the Free
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--
-- Sam Lantinga
-- slouken@devolution.com
--*/
--
--/* What we really want is a mapping of every raw key on the keyboard.
-- To support international keyboards, we use the range 0xA1 - 0xFF
-- as international virtual keycodes. We'll follow in the footsteps of X11...
-- The names of the keys
-- */
--
--alias int SDLKey;
--enum {
-- /* The keyboard syms have been cleverly chosen to map to ASCII */
-- SDLK_UNKNOWN = 0,
-- SDLK_FIRST = 0,
-- SDLK_BACKSPACE = 8,
-- SDLK_TAB = 9,
-- SDLK_CLEAR = 12,
-- SDLK_RETURN = 13,
-- SDLK_PAUSE = 19,
-- SDLK_ESCAPE = 27,
-- SDLK_SPACE = 32,
-- SDLK_EXCLAIM = 33,
-- SDLK_QUOTEDBL = 34,
-- SDLK_HASH = 35,
-- SDLK_DOLLAR = 36,
-- SDLK_AMPERSAND = 38,
-- SDLK_QUOTE = 39,
-- SDLK_LEFTPAREN = 40,
-- SDLK_RIGHTPAREN = 41,
-- SDLK_ASTERISK = 42,
-- SDLK_PLUS = 43,
-- SDLK_COMMA = 44,
-- SDLK_MINUS = 45,
-- SDLK_PERIOD = 46,
-- SDLK_SLASH = 47,
-- SDLK_0 = 48,
-- SDLK_1 = 49,
-- SDLK_2 = 50,
-- SDLK_3 = 51,
-- SDLK_4 = 52,
-- SDLK_5 = 53,
-- SDLK_6 = 54,
-- SDLK_7 = 55,
-- SDLK_8 = 56,
-- SDLK_9 = 57,
-- SDLK_COLON = 58,
-- SDLK_SEMICOLON = 59,
-- SDLK_LESS = 60,
-- SDLK_EQUALS = 61,
-- SDLK_GREATER = 62,
-- SDLK_QUESTION = 63,
-- SDLK_AT = 64,
-- /*
-- Skip uppercase letters
-- */
-- SDLK_LEFTBRACKET = 91,
-- SDLK_BACKSLASH = 92,
-- SDLK_RIGHTBRACKET = 93,
-- SDLK_CARET = 94,
-- SDLK_UNDERSCORE = 95,
-- SDLK_BACKQUOTE = 96,
-- SDLK_a = 97,
-- SDLK_b = 98,
-- SDLK_c = 99,
-- SDLK_d = 100,
-- SDLK_e = 101,
-- SDLK_f = 102,
-- SDLK_g = 103,
-- SDLK_h = 104,
-- SDLK_i = 105,
-- SDLK_j = 106,
-- SDLK_k = 107,
-- SDLK_l = 108,
-- SDLK_m = 109,
-- SDLK_n = 110,
-- SDLK_o = 111,
-- SDLK_p = 112,
-- SDLK_q = 113,
-- SDLK_r = 114,
-- SDLK_s = 115,
-- SDLK_t = 116,
-- SDLK_u = 117,
-- SDLK_v = 118,
-- SDLK_w = 119,
-- SDLK_x = 120,
-- SDLK_y = 121,
-- SDLK_z = 122,
-- SDLK_DELETE = 127,
-- /* End of ASCII mapped keysyms */
--
-- /* International keyboard syms */
-- SDLK_WORLD_0 = 160, /* 0xA0 */
-- SDLK_WORLD_1 = 161,
-- SDLK_WORLD_2 = 162,
-- SDLK_WORLD_3 = 163,
-- SDLK_WORLD_4 = 164,
-- SDLK_WORLD_5 = 165,
-- SDLK_WORLD_6 = 166,
-- SDLK_WORLD_7 = 167,
-- SDLK_WORLD_8 = 168,
-- SDLK_WORLD_9 = 169,
-- SDLK_WORLD_10 = 170,
-- SDLK_WORLD_11 = 171,
-- SDLK_WORLD_12 = 172,
-- SDLK_WORLD_13 = 173,
-- SDLK_WORLD_14 = 174,
-- SDLK_WORLD_15 = 175,
-- SDLK_WORLD_16 = 176,
-- SDLK_WORLD_17 = 177,
-- SDLK_WORLD_18 = 178,
-- SDLK_WORLD_19 = 179,
-- SDLK_WORLD_20 = 180,
-- SDLK_WORLD_21 = 181,
-- SDLK_WORLD_22 = 182,
-- SDLK_WORLD_23 = 183,
-- SDLK_WORLD_24 = 184,
-- SDLK_WORLD_25 = 185,
-- SDLK_WORLD_26 = 186,
-- SDLK_WORLD_27 = 187,
-- SDLK_WORLD_28 = 188,
-- SDLK_WORLD_29 = 189,
-- SDLK_WORLD_30 = 190,
-- SDLK_WORLD_31 = 191,
-- SDLK_WORLD_32 = 192,
-- SDLK_WORLD_33 = 193,
-- SDLK_WORLD_34 = 194,
-- SDLK_WORLD_35 = 195,
-- SDLK_WORLD_36 = 196,
-- SDLK_WORLD_37 = 197,
-- SDLK_WORLD_38 = 198,
-- SDLK_WORLD_39 = 199,
-- SDLK_WORLD_40 = 200,
-- SDLK_WORLD_41 = 201,
-- SDLK_WORLD_42 = 202,
-- SDLK_WORLD_43 = 203,
-- SDLK_WORLD_44 = 204,
-- SDLK_WORLD_45 = 205,
-- SDLK_WORLD_46 = 206,
-- SDLK_WORLD_47 = 207,
-- SDLK_WORLD_48 = 208,
-- SDLK_WORLD_49 = 209,
-- SDLK_WORLD_50 = 210,
-- SDLK_WORLD_51 = 211,
-- SDLK_WORLD_52 = 212,
-- SDLK_WORLD_53 = 213,
-- SDLK_WORLD_54 = 214,
-- SDLK_WORLD_55 = 215,
-- SDLK_WORLD_56 = 216,
-- SDLK_WORLD_57 = 217,
-- SDLK_WORLD_58 = 218,
-- SDLK_WORLD_59 = 219,
-- SDLK_WORLD_60 = 220,
-- SDLK_WORLD_61 = 221,
-- SDLK_WORLD_62 = 222,
-- SDLK_WORLD_63 = 223,
-- SDLK_WORLD_64 = 224,
-- SDLK_WORLD_65 = 225,
-- SDLK_WORLD_66 = 226,
-- SDLK_WORLD_67 = 227,
-- SDLK_WORLD_68 = 228,
-- SDLK_WORLD_69 = 229,
-- SDLK_WORLD_70 = 230,
-- SDLK_WORLD_71 = 231,
-- SDLK_WORLD_72 = 232,
-- SDLK_WORLD_73 = 233,
-- SDLK_WORLD_74 = 234,
-- SDLK_WORLD_75 = 235,
-- SDLK_WORLD_76 = 236,
-- SDLK_WORLD_77 = 237,
-- SDLK_WORLD_78 = 238,
-- SDLK_WORLD_79 = 239,
-- SDLK_WORLD_80 = 240,
-- SDLK_WORLD_81 = 241,
-- SDLK_WORLD_82 = 242,
-- SDLK_WORLD_83 = 243,
-- SDLK_WORLD_84 = 244,
-- SDLK_WORLD_85 = 245,
-- SDLK_WORLD_86 = 246,
-- SDLK_WORLD_87 = 247,
-- SDLK_WORLD_88 = 248,
-- SDLK_WORLD_89 = 249,
-- SDLK_WORLD_90 = 250,
-- SDLK_WORLD_91 = 251,
-- SDLK_WORLD_92 = 252,
-- SDLK_WORLD_93 = 253,
-- SDLK_WORLD_94 = 254,
-- SDLK_WORLD_95 = 255, /* 0xFF */
--
-- /* Numeric keypad */
-- SDLK_KP0 = 256,
-- SDLK_KP1 = 257,
-- SDLK_KP2 = 258,
-- SDLK_KP3 = 259,
-- SDLK_KP4 = 260,
-- SDLK_KP5 = 261,
-- SDLK_KP6 = 262,
-- SDLK_KP7 = 263,
-- SDLK_KP8 = 264,
-- SDLK_KP9 = 265,
-- SDLK_KP_PERIOD = 266,
-- SDLK_KP_DIVIDE = 267,
-- SDLK_KP_MULTIPLY = 268,
-- SDLK_KP_MINUS = 269,
-- SDLK_KP_PLUS = 270,
-- SDLK_KP_ENTER = 271,
-- SDLK_KP_EQUALS = 272,
--
-- /* Arrows + Home/End pad */
-- SDLK_UP = 273,
-- SDLK_DOWN = 274,
-- SDLK_RIGHT = 275,
-- SDLK_LEFT = 276,
-- SDLK_INSERT = 277,
-- SDLK_HOME = 278,
-- SDLK_END = 279,
-- SDLK_PAGEUP = 280,
-- SDLK_PAGEDOWN = 281,
--
-- /* Function keys */
-- SDLK_F1 = 282,
-- SDLK_F2 = 283,
-- SDLK_F3 = 284,
-- SDLK_F4 = 285,
-- SDLK_F5 = 286,
-- SDLK_F6 = 287,
-- SDLK_F7 = 288,
-- SDLK_F8 = 289,
-- SDLK_F9 = 290,
-- SDLK_F10 = 291,
-- SDLK_F11 = 292,
-- SDLK_F12 = 293,
-- SDLK_F13 = 294,
-- SDLK_F14 = 295,
-- SDLK_F15 = 296,
--
-- /* Key state modifier keys */
-- SDLK_NUMLOCK = 300,
-- SDLK_CAPSLOCK = 301,
-- SDLK_SCROLLOCK = 302,
-- SDLK_RSHIFT = 303,
-- SDLK_LSHIFT = 304,
-- SDLK_RCTRL = 305,
-- SDLK_LCTRL = 306,
-- SDLK_RALT = 307,
-- SDLK_LALT = 308,
-- SDLK_RMETA = 309,
-- SDLK_LMETA = 310,
-- SDLK_LSUPER = 311, /* Left "Windows" key */
-- SDLK_RSUPER = 312, /* Right "Windows" key */
-- SDLK_MODE = 313, /* "Alt Gr" key */
-- SDLK_COMPOSE = 314, /* Multi-key compose key */
--
-- /* Miscellaneous function keys */
-- SDLK_HELP = 315,
-- SDLK_PRINT = 316,
-- SDLK_SYSREQ = 317,
-- SDLK_BREAK = 318,
-- SDLK_MENU = 319,
-- SDLK_POWER = 320, /* Power Macintosh power key */
-- SDLK_EURO = 321, /* Some european keyboards */
-- SDLK_UNDO = 322, /* Atari keyboard has Undo */
--
-- /* Add any other keys here */
--
-- SDLK_LAST
--}
--
--/* Enumeration of valid key mods (possibly OR'd together) */
--alias int SDLMod;
--enum {
-- KMOD_NONE = 0x0000,
-- KMOD_LSHIFT= 0x0001,
-- KMOD_RSHIFT= 0x0002,
-- KMOD_LCTRL = 0x0040,
-- KMOD_RCTRL = 0x0080,
-- KMOD_LALT = 0x0100,
-- KMOD_RALT = 0x0200,
-- KMOD_LMETA = 0x0400,
-- KMOD_RMETA = 0x0800,
-- KMOD_NUM = 0x1000,
-- KMOD_CAPS = 0x2000,
-- KMOD_MODE = 0x4000,
-- KMOD_RESERVED = 0x8000
--}
--
--const uint KMOD_CTRL = (KMOD_LCTRL|KMOD_RCTRL);
--const uint KMOD_SHIFT = (KMOD_LSHIFT|KMOD_RSHIFT);
--const uint KMOD_ALT = (KMOD_LALT|KMOD_RALT);
--const uint KMOD_META = (KMOD_LMETA|KMOD_RMETA);
-diff -Naur a2k-org/a2k_src/import/SDL_Keysym.d a2k/a2k_src/import/SDL_Keysym.d
---- a2k-org/a2k_src/import/SDL_Keysym.d 1970-01-01 01:00:00.000000000 +0100
-+++ a2k/a2k_src/import/SDL_Keysym.d 2008-10-07 10:47:18.000000000 +0200
-@@ -0,0 +1,308 @@
-+/*
-+ SDL - Simple DirectMedia Layer
-+ Copyright (C) 1997, 1998, 1999, 2000, 2001 Sam Lantinga
-+
-+ This library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Library General Public
-+ License as published by the Free Software Foundation; either
-+ version 2 of the License, or (at your option) any later version.
-+
-+ This library 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library General Public
-+ License along with this library; if not, write to the Free
-+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+
-+ Sam Lantinga
-+ slouken@devolution.com
-+*/
-+
-+/* What we really want is a mapping of every raw key on the keyboard.
-+ To support international keyboards, we use the range 0xA1 - 0xFF
-+ as international virtual keycodes. We'll follow in the footsteps of X11...
-+ The names of the keys
-+ */
-+
-+alias int SDLKey;
-+enum {
-+ /* The keyboard syms have been cleverly chosen to map to ASCII */
-+ SDLK_UNKNOWN = 0,
-+ SDLK_FIRST = 0,
-+ SDLK_BACKSPACE = 8,
-+ SDLK_TAB = 9,
-+ SDLK_CLEAR = 12,
-+ SDLK_RETURN = 13,
-+ SDLK_PAUSE = 19,
-+ SDLK_ESCAPE = 27,
-+ SDLK_SPACE = 32,
-+ SDLK_EXCLAIM = 33,
-+ SDLK_QUOTEDBL = 34,
-+ SDLK_HASH = 35,
-+ SDLK_DOLLAR = 36,
-+ SDLK_AMPERSAND = 38,
-+ SDLK_QUOTE = 39,
-+ SDLK_LEFTPAREN = 40,
-+ SDLK_RIGHTPAREN = 41,
-+ SDLK_ASTERISK = 42,
-+ SDLK_PLUS = 43,
-+ SDLK_COMMA = 44,
-+ SDLK_MINUS = 45,
-+ SDLK_PERIOD = 46,
-+ SDLK_SLASH = 47,
-+ SDLK_0 = 48,
-+ SDLK_1 = 49,
-+ SDLK_2 = 50,
-+ SDLK_3 = 51,
-+ SDLK_4 = 52,
-+ SDLK_5 = 53,
-+ SDLK_6 = 54,
-+ SDLK_7 = 55,
-+ SDLK_8 = 56,
-+ SDLK_9 = 57,
-+ SDLK_COLON = 58,
-+ SDLK_SEMICOLON = 59,
-+ SDLK_LESS = 60,
-+ SDLK_EQUALS = 61,
-+ SDLK_GREATER = 62,
-+ SDLK_QUESTION = 63,
-+ SDLK_AT = 64,
-+ /*
-+ Skip uppercase letters
-+ */
-+ SDLK_LEFTBRACKET = 91,
-+ SDLK_BACKSLASH = 92,
-+ SDLK_RIGHTBRACKET = 93,
-+ SDLK_CARET = 94,
-+ SDLK_UNDERSCORE = 95,
-+ SDLK_BACKQUOTE = 96,
-+ SDLK_a = 97,
-+ SDLK_b = 98,
-+ SDLK_c = 99,
-+ SDLK_d = 100,
-+ SDLK_e = 101,
-+ SDLK_f = 102,
-+ SDLK_g = 103,
-+ SDLK_h = 104,
-+ SDLK_i = 105,
-+ SDLK_j = 106,
-+ SDLK_k = 107,
-+ SDLK_l = 108,
-+ SDLK_m = 109,
-+ SDLK_n = 110,
-+ SDLK_o = 111,
-+ SDLK_p = 112,
-+ SDLK_q = 113,
-+ SDLK_r = 114,
-+ SDLK_s = 115,
-+ SDLK_t = 116,
-+ SDLK_u = 117,
-+ SDLK_v = 118,
-+ SDLK_w = 119,
-+ SDLK_x = 120,
-+ SDLK_y = 121,
-+ SDLK_z = 122,
-+ SDLK_DELETE = 127,
-+ /* End of ASCII mapped keysyms */
-+
-+ /* International keyboard syms */
-+ SDLK_WORLD_0 = 160, /* 0xA0 */
-+ SDLK_WORLD_1 = 161,
-+ SDLK_WORLD_2 = 162,
-+ SDLK_WORLD_3 = 163,
-+ SDLK_WORLD_4 = 164,
-+ SDLK_WORLD_5 = 165,
-+ SDLK_WORLD_6 = 166,
-+ SDLK_WORLD_7 = 167,
-+ SDLK_WORLD_8 = 168,
-+ SDLK_WORLD_9 = 169,
-+ SDLK_WORLD_10 = 170,
-+ SDLK_WORLD_11 = 171,
-+ SDLK_WORLD_12 = 172,
-+ SDLK_WORLD_13 = 173,
-+ SDLK_WORLD_14 = 174,
-+ SDLK_WORLD_15 = 175,
-+ SDLK_WORLD_16 = 176,
-+ SDLK_WORLD_17 = 177,
-+ SDLK_WORLD_18 = 178,
-+ SDLK_WORLD_19 = 179,
-+ SDLK_WORLD_20 = 180,
-+ SDLK_WORLD_21 = 181,
-+ SDLK_WORLD_22 = 182,
-+ SDLK_WORLD_23 = 183,
-+ SDLK_WORLD_24 = 184,
-+ SDLK_WORLD_25 = 185,
-+ SDLK_WORLD_26 = 186,
-+ SDLK_WORLD_27 = 187,
-+ SDLK_WORLD_28 = 188,
-+ SDLK_WORLD_29 = 189,
-+ SDLK_WORLD_30 = 190,
-+ SDLK_WORLD_31 = 191,
-+ SDLK_WORLD_32 = 192,
-+ SDLK_WORLD_33 = 193,
-+ SDLK_WORLD_34 = 194,
-+ SDLK_WORLD_35 = 195,
-+ SDLK_WORLD_36 = 196,
-+ SDLK_WORLD_37 = 197,
-+ SDLK_WORLD_38 = 198,
-+ SDLK_WORLD_39 = 199,
-+ SDLK_WORLD_40 = 200,
-+ SDLK_WORLD_41 = 201,
-+ SDLK_WORLD_42 = 202,
-+ SDLK_WORLD_43 = 203,
-+ SDLK_WORLD_44 = 204,
-+ SDLK_WORLD_45 = 205,
-+ SDLK_WORLD_46 = 206,
-+ SDLK_WORLD_47 = 207,
-+ SDLK_WORLD_48 = 208,
-+ SDLK_WORLD_49 = 209,
-+ SDLK_WORLD_50 = 210,
-+ SDLK_WORLD_51 = 211,
-+ SDLK_WORLD_52 = 212,
-+ SDLK_WORLD_53 = 213,
-+ SDLK_WORLD_54 = 214,
-+ SDLK_WORLD_55 = 215,
-+ SDLK_WORLD_56 = 216,
-+ SDLK_WORLD_57 = 217,
-+ SDLK_WORLD_58 = 218,
-+ SDLK_WORLD_59 = 219,
-+ SDLK_WORLD_60 = 220,
-+ SDLK_WORLD_61 = 221,
-+ SDLK_WORLD_62 = 222,
-+ SDLK_WORLD_63 = 223,
-+ SDLK_WORLD_64 = 224,
-+ SDLK_WORLD_65 = 225,
-+ SDLK_WORLD_66 = 226,
-+ SDLK_WORLD_67 = 227,
-+ SDLK_WORLD_68 = 228,
-+ SDLK_WORLD_69 = 229,
-+ SDLK_WORLD_70 = 230,
-+ SDLK_WORLD_71 = 231,
-+ SDLK_WORLD_72 = 232,
-+ SDLK_WORLD_73 = 233,
-+ SDLK_WORLD_74 = 234,
-+ SDLK_WORLD_75 = 235,
-+ SDLK_WORLD_76 = 236,
-+ SDLK_WORLD_77 = 237,
-+ SDLK_WORLD_78 = 238,
-+ SDLK_WORLD_79 = 239,
-+ SDLK_WORLD_80 = 240,
-+ SDLK_WORLD_81 = 241,
-+ SDLK_WORLD_82 = 242,
-+ SDLK_WORLD_83 = 243,
-+ SDLK_WORLD_84 = 244,
-+ SDLK_WORLD_85 = 245,
-+ SDLK_WORLD_86 = 246,
-+ SDLK_WORLD_87 = 247,
-+ SDLK_WORLD_88 = 248,
-+ SDLK_WORLD_89 = 249,
-+ SDLK_WORLD_90 = 250,
-+ SDLK_WORLD_91 = 251,
-+ SDLK_WORLD_92 = 252,
-+ SDLK_WORLD_93 = 253,
-+ SDLK_WORLD_94 = 254,
-+ SDLK_WORLD_95 = 255, /* 0xFF */
-+
-+ /* Numeric keypad */
-+ SDLK_KP0 = 256,
-+ SDLK_KP1 = 257,
-+ SDLK_KP2 = 258,
-+ SDLK_KP3 = 259,
-+ SDLK_KP4 = 260,
-+ SDLK_KP5 = 261,
-+ SDLK_KP6 = 262,
-+ SDLK_KP7 = 263,
-+ SDLK_KP8 = 264,
-+ SDLK_KP9 = 265,
-+ SDLK_KP_PERIOD = 266,
-+ SDLK_KP_DIVIDE = 267,
-+ SDLK_KP_MULTIPLY = 268,
-+ SDLK_KP_MINUS = 269,
-+ SDLK_KP_PLUS = 270,
-+ SDLK_KP_ENTER = 271,
-+ SDLK_KP_EQUALS = 272,
-+
-+ /* Arrows + Home/End pad */
-+ SDLK_UP = 273,
-+ SDLK_DOWN = 274,
-+ SDLK_RIGHT = 275,
-+ SDLK_LEFT = 276,
-+ SDLK_INSERT = 277,
-+ SDLK_HOME = 278,
-+ SDLK_END = 279,
-+ SDLK_PAGEUP = 280,
-+ SDLK_PAGEDOWN = 281,
-+
-+ /* Function keys */
-+ SDLK_F1 = 282,
-+ SDLK_F2 = 283,
-+ SDLK_F3 = 284,
-+ SDLK_F4 = 285,
-+ SDLK_F5 = 286,
-+ SDLK_F6 = 287,
-+ SDLK_F7 = 288,
-+ SDLK_F8 = 289,
-+ SDLK_F9 = 290,
-+ SDLK_F10 = 291,
-+ SDLK_F11 = 292,
-+ SDLK_F12 = 293,
-+ SDLK_F13 = 294,
-+ SDLK_F14 = 295,
-+ SDLK_F15 = 296,
-+
-+ /* Key state modifier keys */
-+ SDLK_NUMLOCK = 300,
-+ SDLK_CAPSLOCK = 301,
-+ SDLK_SCROLLOCK = 302,
-+ SDLK_RSHIFT = 303,
-+ SDLK_LSHIFT = 304,
-+ SDLK_RCTRL = 305,
-+ SDLK_LCTRL = 306,
-+ SDLK_RALT = 307,
-+ SDLK_LALT = 308,
-+ SDLK_RMETA = 309,
-+ SDLK_LMETA = 310,
-+ SDLK_LSUPER = 311, /* Left "Windows" key */
-+ SDLK_RSUPER = 312, /* Right "Windows" key */
-+ SDLK_MODE = 313, /* "Alt Gr" key */
-+ SDLK_COMPOSE = 314, /* Multi-key compose key */
-+
-+ /* Miscellaneous function keys */
-+ SDLK_HELP = 315,
-+ SDLK_PRINT = 316,
-+ SDLK_SYSREQ = 317,
-+ SDLK_BREAK = 318,
-+ SDLK_MENU = 319,
-+ SDLK_POWER = 320, /* Power Macintosh power key */
-+ SDLK_EURO = 321, /* Some european keyboards */
-+ SDLK_UNDO = 322, /* Atari keyboard has Undo */
-+
-+ /* Add any other keys here */
-+
-+ SDLK_LAST
-+}
-+
-+/* Enumeration of valid key mods (possibly OR'd together) */
-+alias int SDLMod;
-+enum {
-+ KMOD_NONE = 0x0000,
-+ KMOD_LSHIFT= 0x0001,
-+ KMOD_RSHIFT= 0x0002,
-+ KMOD_LCTRL = 0x0040,
-+ KMOD_RCTRL = 0x0080,
-+ KMOD_LALT = 0x0100,
-+ KMOD_RALT = 0x0200,
-+ KMOD_LMETA = 0x0400,
-+ KMOD_RMETA = 0x0800,
-+ KMOD_NUM = 0x1000,
-+ KMOD_CAPS = 0x2000,
-+ KMOD_MODE = 0x4000,
-+ KMOD_RESERVED = 0x8000
-+}
-+
-+const uint KMOD_CTRL = (KMOD_LCTRL|KMOD_RCTRL);
-+const uint KMOD_SHIFT = (KMOD_LSHIFT|KMOD_RSHIFT);
-+const uint KMOD_ALT = (KMOD_LALT|KMOD_RALT);
-+const uint KMOD_META = (KMOD_LMETA|KMOD_RMETA);
-diff -Naur a2k-org/a2k_src/import/SDL_mixer.d a2k/a2k_src/import/SDL_mixer.d
---- a2k-org/a2k_src/import/SDL_mixer.d 2006-07-26 23:24:04.000000000 +0200
-+++ a2k/a2k_src/import/SDL_mixer.d 2004-05-08 14:09:18.000000000 +0200
-@@ -24,7 +24,7 @@
-
- /* $Id: SDL_mixer.h,v 1.24 2002/05/21 05:45:59 slouken Exp $ */
-
--public import SDL;
-+import SDL;
-
- extern (C) {
-
-diff -Naur a2k-org/a2k_src/import/SDL_mouse.d a2k/a2k_src/import/SDL_mouse.d
---- a2k-org/a2k_src/import/SDL_mouse.d 2006-07-26 23:25:18.000000000 +0200
-+++ a2k/a2k_src/import/SDL_mouse.d 2004-05-08 12:50:44.000000000 +0200
-@@ -22,8 +22,8 @@
-
- /* Include file for SDL mouse event handling */
-
--public import SDL_types;
--public import SDL_video;
-+import SDL_types;
-+import SDL_video;
-
- extern(C):
-
-diff -Naur a2k-org/a2k_src/import/SDL_mutex.d a2k/a2k_src/import/SDL_mutex.d
---- a2k-org/a2k_src/import/SDL_mutex.d 2006-07-26 23:25:20.000000000 +0200
-+++ a2k/a2k_src/import/SDL_mutex.d 2002-01-04 15:36:58.000000000 +0100
-@@ -25,7 +25,7 @@
- These are independent of the other SDL routines.
- */
-
--public import SDL_types;
-+import SDL_types;
-
- extern(C):
-
-diff -Naur a2k-org/a2k_src/import/SDL_quit.d a2k/a2k_src/import/SDL_quit.d
---- a2k-org/a2k_src/import/SDL_quit.d 2006-07-26 23:25:22.000000000 +0200
-+++ a2k/a2k_src/import/SDL_quit.d 2003-12-04 04:03:56.000000000 +0100
-@@ -22,7 +22,7 @@
-
- /* Include file for SDL quit event handling */
-
--public import SDL_events;
-+import SDL_events;
-
- /*
- An SDL_QUITEVENT is generated when the user tries to close the application
-diff -Naur a2k-org/a2k_src/import/SDL_rwops.d a2k/a2k_src/import/SDL_rwops.d
---- a2k-org/a2k_src/import/SDL_rwops.d 2006-07-26 23:25:24.000000000 +0200
-+++ a2k/a2k_src/import/SDL_rwops.d 2003-12-04 04:11:24.000000000 +0100
-@@ -24,7 +24,7 @@
- data sources. It can easily be extended to files, memory, etc.
- */
-
--public import SDL_types;
-+import SDL_types;
-
- extern(C):
-
-diff -Naur a2k-org/a2k_src/import/SDL_sound.d a2k/a2k_src/import/SDL_sound.d
---- a2k-org/a2k_src/import/SDL_sound.d 2006-07-26 23:25:26.000000000 +0200
-+++ a2k/a2k_src/import/SDL_sound.d 2004-05-08 14:09:58.000000000 +0200
-@@ -62,7 +62,7 @@
-
- // convert to D by shinichiro.h
-
--public import SDL;
-+import SDL;
-
- extern (C) {
- const int SOUND_VER_MAJOR = 1;
-diff -Naur a2k-org/a2k_src/import/SDL_syswm.d a2k/a2k_src/import/SDL_syswm.d
---- a2k-org/a2k_src/import/SDL_syswm.d 2006-07-26 23:25:32.000000000 +0200
-+++ a2k/a2k_src/import/SDL_syswm.d 2004-01-03 16:10:50.000000000 +0100
-@@ -22,7 +22,7 @@
-
- /* Include file for SDL custom system window manager hooks */
-
--public import SDL_Version;
-+import SDL_Version;
-
- extern(C):
-
-diff -Naur a2k-org/a2k_src/import/SDL_thread.d a2k/a2k_src/import/SDL_thread.d
---- a2k-org/a2k_src/import/SDL_thread.d 2006-07-26 23:25:36.000000000 +0200
-+++ a2k/a2k_src/import/SDL_thread.d 2002-01-04 15:40:06.000000000 +0100
-@@ -25,8 +25,8 @@
- These are independent of the other SDL routines.
- */
-
--public import SDL_types;
--public import SDL_mutex;
-+import SDL_types;
-+import SDL_mutex;
-
- extern(C):
-
-diff -Naur a2k-org/a2k_src/import/SDL_timer.d a2k/a2k_src/import/SDL_timer.d
---- a2k-org/a2k_src/import/SDL_timer.d 2006-07-26 23:25:38.000000000 +0200
-+++ a2k/a2k_src/import/SDL_timer.d 2002-01-04 15:21:04.000000000 +0100
-@@ -20,7 +20,7 @@
- slouken@devolution.com
- */
-
--public import SDL_types;
-+import SDL_types;
-
- extern(C):
-
-diff -Naur a2k-org/a2k_src/import/SDL_version.d a2k/a2k_src/import/SDL_version.d
---- a2k-org/a2k_src/import/SDL_version.d 2006-07-26 23:25:40.000000000 +0200
-+++ a2k/a2k_src/import/SDL_version.d 1970-01-01 01:00:00.000000000 +0100
-@@ -1,75 +0,0 @@
--/*
-- SDL - Simple DirectMedia Layer
-- Copyright (C) 1997, 1998, 1999, 2000, 2001 Sam Lantinga
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Library General Public
-- License as published by the Free Software Foundation; either
-- version 2 of the License, or (at your option) any later version.
--
-- This library 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
-- Library General Public License for more details.
--
-- You should have received a copy of the GNU Library General Public
-- License along with this library; if not, write to the Free
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--
-- Sam Lantinga
-- slouken@devolution.com
--*/
--
--/* This header defines the current SDL version */
--
--public import SDL_types;
--
--extern(C):
--
--/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
--*/
--const uint SDL_MAJOR_VERSION = 1;
--const uint SDL_MINOR_VERSION = 2;
--const uint SDL_PATCHLEVEL = 6;
--
--struct SDL_version {
-- Uint8 major;
-- Uint8 minor;
-- Uint8 patch;
--}
--
--/* This macro can be used to fill a version structure with the compile-time
-- * version of the SDL library.
-- */
--void SDL_VERSION(SDL_version* X)
--{
-- X.major = SDL_MAJOR_VERSION;
-- X.minor = SDL_MINOR_VERSION;
-- X.patch = SDL_PATCHLEVEL;
--}
--
--/* This macro turns the version numbers into a numeric value:
-- (1,2,3) -> (1203)
-- This assumes that there will never be more than 100 patchlevels
--*/
--uint SDL_VERSIONNUM(Uint8 X, Uint8 Y, Uint8 Z)
--{
-- return X * 1000 + Y * 100 + Z;
--}
--
--/* This is the version number macro for the current SDL version */
--const uint SDL_COMPILEDVERSION = SDL_MAJOR_VERSION * 1000 +
-- SDL_MINOR_VERSION * 100 +
-- SDL_PATCHLEVEL;
--
--/* This macro will evaluate to true if compiled with SDL at least X.Y.Z */
--bit SDL_VERSION_ATLEAST(Uint8 X, Uint8 Y, Uint8 Z)
--{
-- return (SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z));
--}
--
--/* This function gets the version of the dynamically linked SDL library.
-- it should NOT be used to fill a version structure, instead you should
-- use the SDL_Version() macro.
-- */
--SDL_version * SDL_Linked_Version();
-diff -Naur a2k-org/a2k_src/import/SDL_Version.d a2k/a2k_src/import/SDL_Version.d
---- a2k-org/a2k_src/import/SDL_Version.d 1970-01-01 01:00:00.000000000 +0100
-+++ a2k/a2k_src/import/SDL_Version.d 2008-10-07 10:47:18.000000000 +0200
-@@ -0,0 +1,75 @@
-+/*
-+ SDL - Simple DirectMedia Layer
-+ Copyright (C) 1997, 1998, 1999, 2000, 2001 Sam Lantinga
-+
-+ This library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Library General Public
-+ License as published by the Free Software Foundation; either
-+ version 2 of the License, or (at your option) any later version.
-+
-+ This library 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library General Public
-+ License along with this library; if not, write to the Free
-+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+
-+ Sam Lantinga
-+ slouken@devolution.com
-+*/
-+
-+/* This header defines the current SDL version */
-+
-+import SDL_types;
-+
-+extern(C):
-+
-+/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
-+*/
-+const uint SDL_MAJOR_VERSION = 1;
-+const uint SDL_MINOR_VERSION = 2;
-+const uint SDL_PATCHLEVEL = 6;
-+
-+struct SDL_version {
-+ Uint8 major;
-+ Uint8 minor;
-+ Uint8 patch;
-+}
-+
-+/* This macro can be used to fill a version structure with the compile-time
-+ * version of the SDL library.
-+ */
-+void SDL_VERSION(SDL_version* X)
-+{
-+ X.major = SDL_MAJOR_VERSION;
-+ X.minor = SDL_MINOR_VERSION;
-+ X.patch = SDL_PATCHLEVEL;
-+}
-+
-+/* This macro turns the version numbers into a numeric value:
-+ (1,2,3) -> (1203)
-+ This assumes that there will never be more than 100 patchlevels
-+*/
-+uint SDL_VERSIONNUM(Uint8 X, Uint8 Y, Uint8 Z)
-+{
-+ return X * 1000 + Y * 100 + Z;
-+}
-+
-+/* This is the version number macro for the current SDL version */
-+const uint SDL_COMPILEDVERSION = SDL_MAJOR_VERSION * 1000 +
-+ SDL_MINOR_VERSION * 100 +
-+ SDL_PATCHLEVEL;
-+
-+/* This macro will evaluate to true if compiled with SDL at least X.Y.Z */
-+bit SDL_VERSION_ATLEAST(Uint8 X, Uint8 Y, Uint8 Z)
-+{
-+ return (SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z));
-+}
-+
-+/* This function gets the version of the dynamically linked SDL library.
-+ it should NOT be used to fill a version structure, instead you should
-+ use the SDL_Version() macro.
-+ */
-+SDL_version * SDL_Linked_Version();
-diff -Naur a2k-org/a2k_src/import/SDL_video.d a2k/a2k_src/import/SDL_video.d
---- a2k-org/a2k_src/import/SDL_video.d 2006-07-26 23:25:42.000000000 +0200
-+++ a2k/a2k_src/import/SDL_video.d 2002-05-22 07:45:40.000000000 +0200
-@@ -22,9 +22,9 @@
-
- /* Header file for access to the SDL raw framebuffer window */
-
--public import SDL_types;
--public import SDL_mutex;
--public import SDL_rwops;
-+import SDL_types;
-+import SDL_mutex;
-+import SDL_rwops;
-
- extern(C):
-
-diff -Naur a2k-org/a2k_src/src/bg.d a2k/a2k_src/src/bg.d
---- a2k-org/a2k_src/src/bg.d 2005-01-18 00:34:48.000000000 +0100
-+++ a2k/a2k_src/src/bg.d 2008-10-07 09:53:28.000000000 +0200
-@@ -14,7 +14,12 @@
- private import util_snd;
- private import define;
- private import task;
--private import stg;
-+private import stg;
-+private import stg01;
-+private import stg02;
-+private import stg03;
-+private import stg04;
-+private import stg05;
- private import effect;
- private import ship;
-
-@@ -79,20 +84,20 @@
- TskBuf[fade_id].tx = 1.0f;
- TskBuf[fade_id].wait = 60;
- TskBuf[fade_id].step = 2;
-- TskBuf[id].px = cast(float)(rand() % 1536 - 768.0f);
-+ TskBuf[id].px = cast(float)(rand() % 1536 - 768.0f);
- TskBuf[id].py = cast(float)(rand() % 1536 - 768.0f);
- if((rand() % 100) & 0x01){
- if(TskBuf[id].px < 0.0f){
- TskBuf[id].tx = +(cast(float)(rand() % 768));
- }else{
-- TskBuf[id].tx = -(cast(float)(rand() % 768));
-+ TskBuf[id].tx = +(cast(float)(rand() % 768));
- }
- TskBuf[id].ty = TskBuf[id].py;
- }else{
- if(TskBuf[id].py < 0.0f){
- TskBuf[id].ty = +(cast(float)(rand() % 768));
- }else{
-- TskBuf[id].ty = -(cast(float)(rand() % 768));
-+ TskBuf[id].ty = +(cast(float)(rand() % 768));
- }
- TskBuf[id].tx = TskBuf[id].px;
- }
-@@ -104,7 +109,7 @@
- cam_pos = BASE_Z + cam_scr;
- eid = setTSK(GROUP_08,&TSKbgZoom);
- TskBuf[eid].wait = 600;
-- TskBuf[eid].tx = BASE_Z - (cast(float)((rand() % 5000) - 2500 + 10000) / 10000.0f);
-+ TskBuf[eid].tx = BASE_Z - ((cast(float)(rand() % 5000) - 2500 + 10000) / 10000.0f);
- TskBuf[id].step++;
- break;
- case 2:
-@@ -202,22 +207,34 @@
- scr_base[Y] = START_Y;
- scr_ofs[X] = 0.0f;
- scr_ofs[Y] = 0.0f;
-- cam_pos = BASE_Z + cam_scr;
-+ cam_pos = BASE_Z + cam_scr;
-+ bg_mode = 0;
-+ stg_ctrl = STG_MAIN;
- switch(area_num){
- case AREA_01:
-- bg_mode = 0;
-+ bg_mode = 0;
-+ stg_ctrl = STG_MAIN;
-+ setTSK(GROUP_01,&TSKstg01);
- break;
- case AREA_02:
-- bg_mode = 1;
-+ bg_mode = 1;
-+ stg_ctrl = STG_MAIN;
-+ setTSK(GROUP_01,&TSKstg02);
- break;
- case AREA_03:
-- bg_mode = 2;
-+ bg_mode = 2;
-+ stg_ctrl = STG_MAIN;
-+ setTSK(GROUP_01,&TSKstg03);
- break;
- case AREA_04:
-- bg_mode = 3;
-+ bg_mode = 3;
-+ stg_ctrl = STG_MAIN;
-+ setTSK(GROUP_01,&TSKstg04);
- break;
- case AREA_05:
-- bg_mode = 4;
-+ bg_mode = 4;
-+ stg_ctrl = STG_MAIN;
-+ setTSK(GROUP_01,&TSKstg05);
- break;
- default:
- break;
-@@ -296,7 +313,7 @@
- bg_obj[i].line_list.length = 1;
- bg_obj[i].line_list[0][X] = +0.0f;
- bg_obj[i].line_list[0][Y] = +0.0f;
-- bg_obj[i].line_list[0][Z] = -(cast(float)(rand() % 75)) / 100.0f + 0.25f;
-+ bg_obj[i].line_list[0][Z] = -cast(float)(rand() % 75) / 100.0f + 0.25f;
- }
- break;
- case 4:
-@@ -600,8 +617,8 @@
- break;
- case 1:
- if(TskBuf[id].wait){
-- TskBuf[id].px = ((rand() % (256.0f * TskBuf[id].vx)) - ((256.0f * TskBuf[id].vx) / 2)) / 256.0f;
-- TskBuf[id].py = ((rand() % (256.0f * TskBuf[id].vy)) - ((256.0f * TskBuf[id].vy) / 2)) / 256.0f;
-+ TskBuf[id].px = (cast(float)(rand() % (256.0f * TskBuf[id].vx)) - ((256.0f * TskBuf[id].vx) / 2)) / 256.0f;
-+ TskBuf[id].py = (cast(float)(rand() % (256.0f * TskBuf[id].vy)) - ((256.0f * TskBuf[id].vy) / 2)) / 256.0f;
- TskBuf[id].vx += (0.0f - TskBuf[id].vx) / TskBuf[id].cnt;
- TskBuf[id].vy += (0.0f - TskBuf[id].vy) / TskBuf[id].cnt;
- scr_ofs[X] = TskBuf[id].px;
-diff -Naur a2k-org/a2k_src/src/boss01.d a2k/a2k_src/src/boss01.d
---- a2k-org/a2k_src/src/boss01.d 2008-02-06 01:34:54.000000000 +0100
-+++ a2k/a2k_src/src/boss01.d 2008-10-07 09:57:49.000000000 +0200
-@@ -7,7 +7,7 @@
- */
-
- private import std.stdio;
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import std.string;
- private import SDL;
-diff -Naur a2k-org/a2k_src/src/boss02.d a2k/a2k_src/src/boss02.d
---- a2k-org/a2k_src/src/boss02.d 2008-02-06 01:35:18.000000000 +0100
-+++ a2k/a2k_src/src/boss02.d 2008-10-07 09:58:18.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/04/16 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import std.string;
- private import SDL;
-diff -Naur a2k-org/a2k_src/src/boss03.d a2k/a2k_src/src/boss03.d
---- a2k-org/a2k_src/src/boss03.d 2008-02-06 01:35:30.000000000 +0100
-+++ a2k/a2k_src/src/boss03.d 2008-10-07 09:58:28.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/06/08 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import std.string;
- private import SDL;
-@@ -358,7 +358,7 @@
- }
- if(!cmd.isEnd()) cmd.run();
- break;
-- TskBuf[id].ang_x = rand() % 65536;
-+ TskBuf[id].ang_x = cast(float)rand() % 65536;
- TskBuf[id].ang_x *= PI / 65536.0f;
- TskBuf[id].ax =
- TskBuf[id].ay = sin(TskBuf[id].ang_x) * 5.0f / PI;
-diff -Naur a2k-org/a2k_src/src/boss04.d a2k/a2k_src/src/boss04.d
---- a2k-org/a2k_src/src/boss04.d 2008-02-06 01:35:34.000000000 +0100
-+++ a2k/a2k_src/src/boss04.d 2008-10-07 09:58:35.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/06/06 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import std.string;
- private import SDL;
-diff -Naur a2k-org/a2k_src/src/boss05.d a2k/a2k_src/src/boss05.d
---- a2k-org/a2k_src/src/boss05.d 2008-02-06 01:35:38.000000000 +0100
-+++ a2k/a2k_src/src/boss05.d 2008-10-07 09:58:43.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/06/09 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import std.string;
- private import SDL;
-diff -Naur a2k-org/a2k_src/src/bulletcommand.d a2k/a2k_src/src/bulletcommand.d
---- a2k-org/a2k_src/src/bulletcommand.d 2008-02-06 01:37:56.000000000 +0100
-+++ a2k/a2k_src/src/bulletcommand.d 2008-10-07 09:53:28.000000000 +0200
-@@ -247,7 +247,7 @@
- double getRand_(BulletMLRunner* runner){
- double rand_val;
- //printf("getRand_(%d)\n",BulletCommand.now.id);
-- rand_val = rand() % 10000;
-+ rand_val = cast(float)rand() % 10000;
- rand_val /= 10000;
- return rand_val;
- }
-diff -Naur a2k-org/a2k_src/src/effect.d a2k/a2k_src/src/effect.d
---- a2k-org/a2k_src/src/effect.d 2008-02-06 01:35:40.000000000 +0100
-+++ a2k/a2k_src/src/effect.d 2008-10-07 10:03:12.000000000 +0200
-@@ -6,14 +6,15 @@
- 2004/03/31 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import std.string;
- private import SDL;
- private import opengl;
- private import util_sdl;
- private import task;
--private import bg;
-+private import bg;
-+private import system;
-
- float fade_r = 0.0f;
- float fade_g = 0.0f;
-@@ -53,16 +54,16 @@
- for(int i = 0; i < 3; i++){
- switch(i){
- case 0:
-- tpos[X] = -((rand() % 4096) / 1024.0f + 1.0f);
-- tpos[Y] = +((rand() % 4096) / 1024.0f + 1.0f);
-+ tpos[X] = -cast(float)((rand() % 4096) / 1024.0f + 1.0f);
-+ tpos[Y] = +cast(float)((rand() % 4096) / 1024.0f + 1.0f);
- break;
- case 1:
-- tpos[X] = ((rand() % 2048) / 1024.0f - 1.0f);
-- tpos[Y] = -((rand() % 4096) / 1024.0f + 1.0f);
-+ tpos[X] = cast(float)((rand() % 2048) / 1024.0f - 1.0f);
-+ tpos[Y] = -cast(float)((rand() % 4096) / 1024.0f + 1.0f);
- break;
- case 2:
-- tpos[X] = +((rand() % 4096) / 1024.0f + 1.0f);
-- tpos[Y] = +((rand() % 4096) / 1024.0f + 1.0f);
-+ tpos[X] = +cast(float)((rand() % 4096) / 1024.0f + 1.0f);
-+ tpos[Y] = +cast(float)((rand() % 4096) / 1024.0f + 1.0f);
- break;
- default:
- break;
-@@ -74,8 +75,8 @@
- tpos[Y] = fabs(tpos[Y]);
- TskBuf[id].body_ang[i][W] = sqrt(pow(tpos[X],2.0) + pow(tpos[Y],2.0));
- }
-- TskBuf[id].tx = (rand() % 256000) / 1000.0f - 128.0f;
-- TskBuf[id].ty = (rand() % 256000) / 1000.0f - 128.0f;
-+ TskBuf[id].tx = cast(float)(rand() % 256000) / 1000.0f - 128.0f;
-+ TskBuf[id].ty = cast(float)(rand() % 256000) / 1000.0f - 128.0f;
- TskBuf[id].tx += TskBuf[id].px;
- TskBuf[id].ty += TskBuf[id].py;
- TskBuf[id].wait = 60;
-@@ -165,16 +166,16 @@
- for(int i = 0; i < 3; i++){
- switch(i){
- case 0:
-- tpos[X] = -((rand() % 12288) / 1024.0f + 3.0f);
-- tpos[Y] = +((rand() % 12288) / 1024.0f + 3.0f);
-+ tpos[X] = -(cast(float)(rand() % 12288) / 1024.0f + 3.0f);
-+ tpos[Y] = +(cast(float)(rand() % 12288) / 1024.0f + 3.0f);
- break;
- case 1:
-- tpos[X] = ((rand() % 6144) / 1024.0f - 3.0f);
-- tpos[Y] = -((rand() % 12288) / 1024.0f + 3.0f);
-+ tpos[X] = (cast(float)(rand() % 6144) / 1024.0f - 3.0f);
-+ tpos[Y] = -(cast(float)(rand() % 12288) / 1024.0f + 3.0f);
- break;
- case 2:
-- tpos[X] = +((rand() % 12288) / 1024.0f + 3.0f);
-- tpos[Y] = +((rand() % 12288) / 1024.0f + 3.0f);
-+ tpos[X] = +(cast(float)(rand() % 12288) / 1024.0f + 3.0f);
-+ tpos[Y] = +(cast(float)(rand() % 12288) / 1024.0f + 3.0f);
- break;
- default:
- break;
-@@ -186,8 +187,8 @@
- tpos[Y] = fabs(tpos[Y]);
- TskBuf[id].body_ang[i][W] = sqrt(pow(tpos[X],2.0) + pow(tpos[Y],2.0));
- }
-- TskBuf[id].tx = (rand() % 512000) / 1000.0f - 256.0f;
-- TskBuf[id].ty = (rand() % 512000) / 1000.0f - 256.0f;
-+ TskBuf[id].tx = cast(float)(rand() % 512000) / 1000.0f - 256.0f;
-+ TskBuf[id].ty = cast(float)(rand() % 512000) / 1000.0f - 256.0f;
- TskBuf[id].tx += TskBuf[id].px;
- TskBuf[id].ty += TskBuf[id].py;
- TskBuf[id].wait = 60;
-@@ -279,13 +280,13 @@
- TskBuf[id].fp_draw = &TSKBrokenBodyDraw;
- TskBuf[id].fp_exit = &TSKBrokenBodyExit;
- TskBuf[id].alpha = 1.0f;
-- TskBuf[id].tx = (rand() % 256000) / 1000.0f - 128.0f;
-- TskBuf[id].ty = (rand() % 256000) / 1000.0f - 128.0f;
-+ TskBuf[id].tx = cast(float)(rand() % 256000) / 1000.0f - 128.0f;
-+ TskBuf[id].ty = cast(float)(rand() % 256000) / 1000.0f - 128.0f;
- TskBuf[id].tx *= 2.0f;
- TskBuf[id].ty *= 2.0f;
- TskBuf[id].tx += TskBuf[id].px;
- TskBuf[id].ty += TskBuf[id].py;
-- TskBuf[id].rot_add = (rand % 30) - 15;
-+ TskBuf[id].rot_add = cast(float)(rand % 30) - 15;
- if(!(TskBuf[id].rot_add - 15)) TskBuf[id].rot_add = -1;
- else if(!(TskBuf[id].rot_add + 15)) TskBuf[id].rot_add = +1;
- if(TskBuf[id].rot_add < 0) TskBuf[id].rot_add = PI / (TskBuf[id].rot_add - 15);
-@@ -410,13 +411,13 @@
- TskBuf[id].fp_draw = &TSKBrokenLineDraw;
- TskBuf[id].fp_exit = &TSKBrokenLineExit;
- TskBuf[id].alpha = 1.0f;
-- TskBuf[id].tx = (rand() % 256000) / 1000.0f - 128.0f;
-- TskBuf[id].ty = (rand() % 256000) / 1000.0f - 128.0f;
-+ TskBuf[id].tx = cast(float)(rand() % 256000) / 1000.0f - 128.0f;
-+ TskBuf[id].ty = cast(float)(rand() % 256000) / 1000.0f - 128.0f;
- TskBuf[id].tx *= 2.0f;
- TskBuf[id].ty *= 2.0f;
- TskBuf[id].tx += TskBuf[id].px;
- TskBuf[id].ty += TskBuf[id].py;
-- TskBuf[id].rot_add = (rand % 30) - 15;
-+ TskBuf[id].rot_add = cast(float)(rand % 30) - 15;
- if(!(TskBuf[id].rot_add - 15)) TskBuf[id].rot_add = -1;
- else if(!(TskBuf[id].rot_add + 15)) TskBuf[id].rot_add = +1;
- if(TskBuf[id].rot_add < 0) TskBuf[id].rot_add = PI / (TskBuf[id].rot_add - 15);
-diff -Naur a2k-org/a2k_src/src/enemy01.d a2k/a2k_src/src/enemy01.d
---- a2k-org/a2k_src/src/enemy01.d 2008-02-06 01:35:46.000000000 +0100
-+++ a2k/a2k_src/src/enemy01.d 2008-10-07 10:03:51.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/03/27 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import SDL;
- private import opengl;
-@@ -63,8 +63,8 @@
- switch(TskBuf[id].step){
- case 0:
- TskBuf[id].tskid |= TSKID_ZAKO;
-- TskBuf[id].px = (rand() % 1536) - 768.0f;
-- TskBuf[id].py = (rand() % 1536) - 768.0f;
-+ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
-+ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
- TskBuf[id].fp_int = null;
- TskBuf[id].fp_draw = &TSKenemy01Draw;
- TskBuf[id].fp_exit = &TSKenemy01Exit;
-diff -Naur a2k-org/a2k_src/src/enemy02.d a2k/a2k_src/src/enemy02.d
---- a2k-org/a2k_src/src/enemy02.d 2008-02-06 01:35:48.000000000 +0100
-+++ a2k/a2k_src/src/enemy02.d 2008-10-07 10:04:05.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/04/11 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import SDL;
- private import opengl;
-@@ -63,8 +63,8 @@
- switch(TskBuf[id].step){
- case 0:
- TskBuf[id].tskid |= TSKID_ZAKO;
-- TskBuf[id].px = (rand() % 1536) - 768.0f;
-- TskBuf[id].py = (rand() % 1536) - 768.0f;
-+ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
-+ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
- TskBuf[id].fp_int = null;
- TskBuf[id].fp_draw = &TSKenemy02Draw;
- TskBuf[id].fp_exit = &TSKenemy02Exit;
-diff -Naur a2k-org/a2k_src/src/enemy03.d a2k/a2k_src/src/enemy03.d
---- a2k-org/a2k_src/src/enemy03.d 2008-02-06 01:35:52.000000000 +0100
-+++ a2k/a2k_src/src/enemy03.d 2008-10-07 10:04:19.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/04/11 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import SDL;
- private import opengl;
-@@ -63,8 +63,8 @@
- switch(TskBuf[id].step){
- case 0:
- TskBuf[id].tskid |= TSKID_ZAKO;
-- TskBuf[id].px = (rand() % 1536) - 768.0f;
-- TskBuf[id].py = (rand() % 1536) - 768.0f;
-+ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
-+ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
- TskBuf[id].tid = ship_id;
- TskBuf[id].fp_int = null;
- TskBuf[id].fp_draw = &TSKenemy03Draw;
-diff -Naur a2k-org/a2k_src/src/enemy04.d a2k/a2k_src/src/enemy04.d
---- a2k-org/a2k_src/src/enemy04.d 2008-02-06 01:35:56.000000000 +0100
-+++ a2k/a2k_src/src/enemy04.d 2008-10-07 10:05:41.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/04/11 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import SDL;
- private import opengl;
-@@ -53,8 +53,8 @@
- switch(TskBuf[id].step){
- case 0:
- TskBuf[id].tskid |= TSKID_ZAKO;
-- TskBuf[id].px = (rand() % 1536) - 768.0f;
-- TskBuf[id].py = (rand() % 1536) - 768.0f;
-+ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
-+ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
- TskBuf[id].tid = ship_id;
- TskBuf[id].fp_int = null;
- TskBuf[id].fp_draw = &TSKenemy04Draw;
-@@ -132,14 +132,14 @@
- TskBuf[id].vx = TskBuf[id].px;
- TskBuf[id].vy = TskBuf[id].py;
- if(!TskBuf[id].cnt){
-- TskBuf[id].tx = (rand() % 512) + 256.0f;
-- TskBuf[id].ty = (rand() % 512) + 256.0f;
-+ TskBuf[id].tx = cast(float)(rand() % 512) + 256.0f;
-+ TskBuf[id].ty = cast(float)(rand() % 512) + 256.0f;
- if(TskBuf[id].px < ship_px) TskBuf[id].tx = +TskBuf[id].tx;
- else TskBuf[id].tx = -TskBuf[id].tx;
- if(TskBuf[id].py < ship_py) TskBuf[id].ty = +TskBuf[id].ty;
- else TskBuf[id].ty = -TskBuf[id].ty;
-- if((rand() % 100) > 97) TskBuf[id].tx = -TskBuf[id].tx;
-- if((rand() % 100) > 97) TskBuf[id].ty = -TskBuf[id].ty;
-+ if(cast(float)(rand() % 100) > 97) TskBuf[id].tx = -TskBuf[id].tx;
-+ if(cast(float)(rand() % 100) > 97) TskBuf[id].ty = -TskBuf[id].ty;
- TskBuf[id].tx = TskBuf[id].px + TskBuf[id].tx;
- TskBuf[id].ty = TskBuf[id].py + TskBuf[id].ty;
- if(TskBuf[id].tx < -ENEMY_AREAMAX) TskBuf[id].tx = -ENEMY_AREAMAX + 1.0f;
-diff -Naur a2k-org/a2k_src/src/enemy05.d a2k/a2k_src/src/enemy05.d
---- a2k-org/a2k_src/src/enemy05.d 2008-02-06 01:35:58.000000000 +0100
-+++ a2k/a2k_src/src/enemy05.d 2008-10-07 10:08:43.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/05/30 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import SDL;
- private import opengl;
-@@ -53,8 +53,8 @@
- switch(TskBuf[id].step){
- case 0:
- TskBuf[id].tskid |= TSKID_ZAKO;
-- TskBuf[id].px = (rand() % 1536) - 768.0f;
-- TskBuf[id].py = (rand() % 1536) - 768.0f;
-+ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
-+ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
- TskBuf[id].tid = ship_id;
- TskBuf[id].fp_int = null;
- TskBuf[id].fp_draw = &TSKenemy05Draw;
-@@ -127,42 +127,31 @@
- }
- }
- /* 座標更新 */
-- if(TskBuf[id].px < ship_px){
-- if(TskBuf[id].vx > +0.0f) TskBuf[id].vx += 1.0f / SPEED_RATE * 2.0f;
-- else TskBuf[id].vx += 1.0f / SPEED_RATE * 1.5f;
-- if(TskBuf[id].vx > +MAX_SPEED) TskBuf[id].vx = +MAX_SPEED;
-- }else{
-- if(TskBuf[id].vx < +0.0f) TskBuf[id].vx -= 1.0f / SPEED_RATE * 2.0f;
-- else TskBuf[id].vx -= 1.0f / SPEED_RATE * 1.5f;
-- if(TskBuf[id].vx < -MAX_SPEED) TskBuf[id].vx = -MAX_SPEED;
-- }
-- if(TskBuf[id].py < ship_py){
-- if(TskBuf[id].vy > +0.0f) TskBuf[id].vy += 1.0f / SPEED_RATE * 2.0f;
-- else TskBuf[id].vy += 1.0f / SPEED_RATE * 1.5f;
-- if(TskBuf[id].vy > +MAX_SPEED) TskBuf[id].vy = +MAX_SPEED;
-- }else{
-- if(TskBuf[id].vy < +0.0f) TskBuf[id].vy -= 1.0f / SPEED_RATE * 2.0f;
-- else TskBuf[id].vy -= 1.0f / SPEED_RATE * 1.5f;
-- if(TskBuf[id].vy < -MAX_SPEED) TskBuf[id].vy = -MAX_SPEED;
-- }
-- TskBuf[id].px += TskBuf[id].vx;
-- TskBuf[id].py += TskBuf[id].vy;
-- if(TskBuf[id].px < -ENEMY_AREAMAX){
-- TskBuf[id].px = -ENEMY_AREAMAX;
-- TskBuf[id].vx = -TskBuf[id].vx / 2;
-- }
-- if(TskBuf[id].px > +ENEMY_AREAMAX){
-- TskBuf[id].px = +ENEMY_AREAMAX;
-- TskBuf[id].vx = -TskBuf[id].vx / 2;
-- }
-- if(TskBuf[id].py < -ENEMY_AREAMAX){
-- TskBuf[id].py = -ENEMY_AREAMAX;
-- TskBuf[id].vy = -TskBuf[id].vy / 2;
-- }
-- if(TskBuf[id].py > +ENEMY_AREAMAX){
-- TskBuf[id].py = +ENEMY_AREAMAX;
-- TskBuf[id].vy = -TskBuf[id].vy / 2;
-- }
-+ TskBuf[id].vx = TskBuf[id].px;
-+ TskBuf[id].vy = TskBuf[id].py;
-+ if(!TskBuf[id].cnt){
-+ TskBuf[id].tx = cast(float)(rand() % 512) + 256.0f;
-+ TskBuf[id].ty = cast(float)(rand() % 512) + 256.0f;
-+ if(TskBuf[id].px < ship_px) TskBuf[id].tx = +TskBuf[id].tx;
-+ else TskBuf[id].tx = -TskBuf[id].tx;
-+ if(TskBuf[id].py < ship_py) TskBuf[id].ty = +TskBuf[id].ty;
-+ else TskBuf[id].ty = -TskBuf[id].ty;
-+ if(cast(float)(rand() % 100) > 97) TskBuf[id].tx = -TskBuf[id].tx;
-+ if(cast(float)(rand() % 100) > 97) TskBuf[id].ty = -TskBuf[id].ty;
-+ TskBuf[id].tx = TskBuf[id].px + TskBuf[id].tx;
-+ TskBuf[id].ty = TskBuf[id].py + TskBuf[id].ty;
-+ if(TskBuf[id].tx < -ENEMY_AREAMAX) TskBuf[id].tx = -ENEMY_AREAMAX + 1.0f;
-+ if(TskBuf[id].tx > +ENEMY_AREAMAX) TskBuf[id].tx = +ENEMY_AREAMAX - 1.0f;
-+ if(TskBuf[id].ty < -ENEMY_AREAMAX) TskBuf[id].ty = -ENEMY_AREAMAX + 1.0f;
-+ if(TskBuf[id].ty > +ENEMY_AREAMAX) TskBuf[id].ty = +ENEMY_AREAMAX - 1.0f;
-+ TskBuf[id].cnt = 180;
-+ }else{
-+ TskBuf[id].cnt--;
-+ }
-+ TskBuf[id].px += (TskBuf[id].tx - TskBuf[id].px) / (180 / 4);
-+ TskBuf[id].py += (TskBuf[id].ty - TskBuf[id].py) / (180 / 4);
-+ TskBuf[id].vx -= TskBuf[id].px;
-+ TskBuf[id].vy -= TskBuf[id].py;
- TskBuf[id].rot = atan2(-TskBuf[id].vx, -TskBuf[id].vy);
- break;
- default:
-diff -Naur a2k-org/a2k_src/src/enemy06.d a2k/a2k_src/src/enemy06.d
---- a2k-org/a2k_src/src/enemy06.d 2008-02-06 01:36:00.000000000 +0100
-+++ a2k/a2k_src/src/enemy06.d 2008-10-07 10:10:11.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/06/04 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import SDL;
- private import opengl;
-@@ -65,8 +65,8 @@
- switch(TskBuf[id].step){
- case 0:
- TskBuf[id].tskid |= TSKID_ZAKO;
-- TskBuf[id].px = (rand() % 1536) - 768.0f;
-- TskBuf[id].py = (rand() % 1536) - 768.0f;
-+ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
-+ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
- TskBuf[id].tid = ship_id;
- TskBuf[id].fp_int = null;
- TskBuf[id].fp_draw = &TSKenemy06Draw;
-@@ -145,14 +145,14 @@
- TskBuf[id].vx = TskBuf[id].px;
- TskBuf[id].vy = TskBuf[id].py;
- if(TskBuf[id].cnt == TskBuf[id].mov_cnt){
-- TskBuf[id].tx = (rand() % 512) + 256.0f;
-- TskBuf[id].ty = (rand() % 512) + 256.0f;
-+ TskBuf[id].tx = cast(float)(rand() % 512) + 256.0f;
-+ TskBuf[id].ty = cast(float)(rand() % 512) + 256.0f;
- if(TskBuf[id].px < ship_px) TskBuf[id].tx = +TskBuf[id].tx;
- else TskBuf[id].tx = -TskBuf[id].tx;
- if(TskBuf[id].py < ship_py) TskBuf[id].ty = +TskBuf[id].ty;
- else TskBuf[id].ty = -TskBuf[id].ty;
-- if((rand() % 100) > 97) TskBuf[id].tx = -TskBuf[id].tx;
-- if((rand() % 100) > 97) TskBuf[id].ty = -TskBuf[id].ty;
-+ if(cast(float)(rand() % 100) > 97) TskBuf[id].tx = -TskBuf[id].tx;
-+ if(cast(float)(rand() % 100) > 97) TskBuf[id].ty = -TskBuf[id].ty;
- TskBuf[id].tx = TskBuf[id].px + TskBuf[id].tx;
- TskBuf[id].ty = TskBuf[id].py + TskBuf[id].ty;
- if(TskBuf[id].tx < -ENEMY_AREAMAX) TskBuf[id].tx = -ENEMY_AREAMAX + 1.0f;
-diff -Naur a2k-org/a2k_src/src/enemy07.d a2k/a2k_src/src/enemy07.d
---- a2k-org/a2k_src/src/enemy07.d 2008-02-06 01:36:02.000000000 +0100
-+++ a2k/a2k_src/src/enemy07.d 2008-10-07 10:11:42.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/06/05 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import SDL;
- private import opengl;
-@@ -63,8 +63,8 @@
- switch(TskBuf[id].step){
- case 0:
- TskBuf[id].tskid |= TSKID_ZAKO;
-- TskBuf[id].px = (rand() % 1536) - 768.0f;
-- TskBuf[id].py = (rand() % 1536) - 768.0f;
-+ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
-+ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
- TskBuf[id].tid = ship_id;
- TskBuf[id].fp_int = null;
- TskBuf[id].fp_draw = &TSKenemy07Draw;
-@@ -137,42 +137,31 @@
- }
- }
- /* 座標更新 */
-- if(TskBuf[id].px < ship_px){
-- if(TskBuf[id].vx > +0.0f) TskBuf[id].vx += 1.0f / SPEED_RATE * 2.0f;
-- else TskBuf[id].vx += 1.0f / SPEED_RATE * 1.5f;
-- if(TskBuf[id].vx > +MAX_SPEED) TskBuf[id].vx = +MAX_SPEED;
-- }else{
-- if(TskBuf[id].vx < +0.0f) TskBuf[id].vx -= 1.0f / SPEED_RATE * 2.0f;
-- else TskBuf[id].vx -= 1.0f / SPEED_RATE * 1.5f;
-- if(TskBuf[id].vx < -MAX_SPEED) TskBuf[id].vx = -MAX_SPEED;
-- }
-- if(TskBuf[id].py < ship_py){
-- if(TskBuf[id].vy > +0.0f) TskBuf[id].vy += 1.0f / SPEED_RATE * 2.0f;
-- else TskBuf[id].vy += 1.0f / SPEED_RATE * 1.5f;
-- if(TskBuf[id].vy > +MAX_SPEED) TskBuf[id].vy = +MAX_SPEED;
-- }else{
-- if(TskBuf[id].vy < +0.0f) TskBuf[id].vy -= 1.0f / SPEED_RATE * 2.0f;
-- else TskBuf[id].vy -= 1.0f / SPEED_RATE * 1.5f;
-- if(TskBuf[id].vy < -MAX_SPEED) TskBuf[id].vy = -MAX_SPEED;
-- }
-- TskBuf[id].px += TskBuf[id].vx;
-- TskBuf[id].py += TskBuf[id].vy;
-- if(TskBuf[id].px < -ENEMY_AREAMAX){
-- TskBuf[id].px = -ENEMY_AREAMAX;
-- TskBuf[id].vx = -TskBuf[id].vx / 2;
-- }
-- if(TskBuf[id].px > +ENEMY_AREAMAX){
-- TskBuf[id].px = +ENEMY_AREAMAX;
-- TskBuf[id].vx = -TskBuf[id].vx / 2;
-- }
-- if(TskBuf[id].py < -ENEMY_AREAMAX){
-- TskBuf[id].py = -ENEMY_AREAMAX;
-- TskBuf[id].vy = -TskBuf[id].vy / 2;
-- }
-- if(TskBuf[id].py > +ENEMY_AREAMAX){
-- TskBuf[id].py = +ENEMY_AREAMAX;
-- TskBuf[id].vy = -TskBuf[id].vy / 2;
-- }
-+ TskBuf[id].vx = TskBuf[id].px;
-+ TskBuf[id].vy = TskBuf[id].py;
-+ if(!TskBuf[id].cnt){
-+ TskBuf[id].tx = cast(float)(rand() % 512) + 256.0f;
-+ TskBuf[id].ty = cast(float)(rand() % 512) + 256.0f;
-+ if(TskBuf[id].px < ship_px) TskBuf[id].tx = +TskBuf[id].tx;
-+ else TskBuf[id].tx = -TskBuf[id].tx;
-+ if(TskBuf[id].py < ship_py) TskBuf[id].ty = +TskBuf[id].ty;
-+ else TskBuf[id].ty = -TskBuf[id].ty;
-+ if(cast(float)(rand() % 100) > 97) TskBuf[id].tx = -TskBuf[id].tx;
-+ if(cast(float)(rand() % 100) > 97) TskBuf[id].ty = -TskBuf[id].ty;
-+ TskBuf[id].tx = TskBuf[id].px + TskBuf[id].tx;
-+ TskBuf[id].ty = TskBuf[id].py + TskBuf[id].ty;
-+ if(TskBuf[id].tx < -ENEMY_AREAMAX) TskBuf[id].tx = -ENEMY_AREAMAX + 1.0f;
-+ if(TskBuf[id].tx > +ENEMY_AREAMAX) TskBuf[id].tx = +ENEMY_AREAMAX - 1.0f;
-+ if(TskBuf[id].ty < -ENEMY_AREAMAX) TskBuf[id].ty = -ENEMY_AREAMAX + 1.0f;
-+ if(TskBuf[id].ty > +ENEMY_AREAMAX) TskBuf[id].ty = +ENEMY_AREAMAX - 1.0f;
-+ TskBuf[id].cnt = 180;
-+ }else{
-+ TskBuf[id].cnt--;
-+ }
-+ TskBuf[id].px += (TskBuf[id].tx - TskBuf[id].px) / (180 / 4);
-+ TskBuf[id].py += (TskBuf[id].ty - TskBuf[id].py) / (180 / 4);
-+ TskBuf[id].vx -= TskBuf[id].px;
-+ TskBuf[id].vy -= TskBuf[id].py;
- TskBuf[id].rot = atan2(-TskBuf[id].vx, -TskBuf[id].vy);
- break;
- default:
-diff -Naur a2k-org/a2k_src/src/enemy08.d a2k/a2k_src/src/enemy08.d
---- a2k-org/a2k_src/src/enemy08.d 2008-02-06 01:36:04.000000000 +0100
-+++ a2k/a2k_src/src/enemy08.d 2008-10-07 10:11:52.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/06/05 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import SDL;
- private import opengl;
-@@ -65,8 +65,8 @@
- switch(TskBuf[id].step){
- case 0:
- TskBuf[id].tskid |= TSKID_ZAKO;
-- TskBuf[id].px = (rand() % 1536) - 768.0f;
-- TskBuf[id].py = (rand() % 1536) - 768.0f;
-+ TskBuf[id].px = (cast(float)(rand() % 1536) - 768.0f);
-+ TskBuf[id].py = (cast(float)(rand() % 1536) - 768.0f);
- TskBuf[id].tid = ship_id;
- TskBuf[id].fp_int = null;
- TskBuf[id].fp_draw = &TSKenemy08Draw;
-diff -Naur a2k-org/a2k_src/src/enemy.d a2k/a2k_src/src/enemy.d
---- a2k-org/a2k_src/src/enemy.d 2008-02-06 01:35:42.000000000 +0100
-+++ a2k/a2k_src/src/enemy.d 2008-10-07 10:03:38.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/04/14 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import SDL;
- private import opengl;
- private import util_sdl;
-@@ -158,6 +158,7 @@
- return;
- }
-
-+
- void TSKeshotInt(int id)
- {
- TskBuf[id].step = -1;
-@@ -165,6 +166,7 @@
- return;
- }
-
-+
- void TSKeshotDrawSimple(int id)
- {
- float[XYZ] pos;
-@@ -198,6 +200,7 @@
- glEnd();
- }
-
-+
- void TSKeshotDrawActive(int id)
- {
- float[XYZ] pos;
-@@ -231,6 +234,7 @@
- glEnd();
- }
-
-+
- void TSKeshotExit(int id)
- {
- BulletCommand cmd = TskBuf[id].bullet_command;
-@@ -243,6 +247,7 @@
- }
- }
-
-+
- float getShipDirection(int id)
- {
- float px,py;
-@@ -257,3 +262,4 @@
- return dir;
- }
-
-+
-diff -Naur a2k-org/a2k_src/src/init.d a2k/a2k_src/src/init.d
---- a2k-org/a2k_src/src/init.d 2005-05-19 22:31:30.000000000 +0200
-+++ a2k/a2k_src/src/init.d 2008-10-07 09:53:28.000000000 +0200
-@@ -6,7 +6,7 @@
- 2003/12/01 jumpei isshiki
- */
-
--private import std.stdio;
-+private import std.c.stdio;
- private import std.stream;
- private import util_sdl;
- private import util_snd;
-@@ -101,7 +101,7 @@
- fd.open("score.dat");
- if(fd.size() != 12){
- fd.close();
-- writefln("score.dat initialized");
-+ printf("score.dat initialized");
- fd.create("score.dat");
- fd.write(high_easy);
- fd.write(high_normal);
-@@ -112,7 +112,7 @@
- fd.read(high_hard);
- }
- } catch (Error e) {
-- writefln("score.dat initialized");
-+ printf("score.dat initialized");
- fd.create("score.dat");
- fd.write(high_easy);
- fd.write(high_normal);
-@@ -126,7 +126,7 @@
- try {
- if(fd.size() != 12){
- fd.close();
-- writefln("config.dat initialized");
-+ printf("config.dat initialized");
- fd.create("config.dat");
- fd.write(pad_type);
- fd.write(vol_se);
-@@ -139,7 +139,7 @@
- volumeSNDmusic(vol_music);
- }
- } catch (Error e) {
-- writefln("config.dat initialized");
-+ printf("config.dat initialized");
- fd.create("config.dat");
- fd.write(pad_type);
- fd.write(vol_se);
-diff -Naur a2k-org/a2k_src/src/luminous.d a2k/a2k_src/src/luminous.d
---- a2k-org/a2k_src/src/luminous.d 2008-02-06 01:39:52.000000000 +0100
-+++ a2k/a2k_src/src/luminous.d 2008-10-07 09:53:29.000000000 +0200
-@@ -7,7 +7,7 @@
- */
-
- private import std.math;
--private import std.string;
-+private import std.c.string;
- private import opengl;
- private import util_sdl;
- private import task;
-diff -Naur a2k-org/a2k_src/src/main.d a2k/a2k_src/src/main.d
---- a2k-org/a2k_src/src/main.d 2008-02-07 00:42:58.000000000 +0100
-+++ a2k/a2k_src/src/main.d 2008-10-07 10:18:53.000000000 +0200
-@@ -6,8 +6,9 @@
- 2003/11/28 jumpei isshiki
- */
-
--private import std.c.windows.windows;
--private import SDL;
-+//private import std.c.windows.windows;
-+private import SDL;
-+private import SDL_Keysym;
- private import opengl;
- private import util_sdl;
- private import util_pad;
-@@ -31,25 +32,29 @@
- int pause = 0;
- int pause_flag = 0;
- int skip = 0;
--
-+/*
- extern (Windows)
- int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
- {
-+*/
-+public int main(char[][] args) {
- int result;
--
-+/*
- gc_init();
- _minit();
-
- try{
- _moduleCtor();
-- _moduleUnitTests();
-+ _moduleUnitTests();
-+*/
- result = boot();
-+/*
- }catch (Object o){
- MessageBoxA(null, cast(char*)o.toString(), "Error", MB_OK | MB_ICONEXCLAMATION);
- result = 0;
- }
- gc_term();
--
-+*/
- return result;
- }
-
-diff -Naur a2k-org/a2k_src/src/middle01.d a2k/a2k_src/src/middle01.d
---- a2k-org/a2k_src/src/middle01.d 2008-02-06 01:36:06.000000000 +0100
-+++ a2k/a2k_src/src/middle01.d 2008-10-07 10:19:15.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/05/05 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import std.string;
- private import SDL;
-diff -Naur a2k-org/a2k_src/src/middle02.d a2k/a2k_src/src/middle02.d
---- a2k-org/a2k_src/src/middle02.d 2008-02-06 01:36:08.000000000 +0100
-+++ a2k/a2k_src/src/middle02.d 2008-10-07 10:19:24.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/06/03 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import std.string;
- private import SDL;
-diff -Naur a2k-org/a2k_src/src/middle03.d a2k/a2k_src/src/middle03.d
---- a2k-org/a2k_src/src/middle03.d 2008-02-06 01:36:12.000000000 +0100
-+++ a2k/a2k_src/src/middle03.d 2008-10-07 10:19:32.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/06/07 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import std.string;
- private import SDL;
-diff -Naur a2k-org/a2k_src/src/middle04.d a2k/a2k_src/src/middle04.d
---- a2k-org/a2k_src/src/middle04.d 2008-02-06 01:36:14.000000000 +0100
-+++ a2k/a2k_src/src/middle04.d 2008-10-07 10:19:40.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/07/05 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import std.string;
- private import SDL;
-diff -Naur a2k-org/a2k_src/src/middle05.d a2k/a2k_src/src/middle05.d
---- a2k-org/a2k_src/src/middle05.d 2008-02-06 01:36:16.000000000 +0100
-+++ a2k/a2k_src/src/middle05.d 2008-10-07 10:19:47.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/07/06 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.random;
- private import std.string;
- private import SDL;
-diff -Naur a2k-org/a2k_src/src/ship.d a2k/a2k_src/src/ship.d
---- a2k-org/a2k_src/src/ship.d 2008-02-12 23:41:50.000000000 +0100
-+++ a2k/a2k_src/src/ship.d 2008-10-07 10:41:21.000000000 +0200
-@@ -6,7 +6,7 @@
- 2003/12/01 jumpei isshiki
- */
-
--private import std.math;
-+private import std.c.math;
- private import std.intrinsic;
- private import std.random;
- private import SDL;
-diff -Naur a2k-org/a2k_src/src/stg.d a2k/a2k_src/src/stg.d
---- a2k-org/a2k_src/src/stg.d 2005-05-19 22:52:14.000000000 +0200
-+++ a2k/a2k_src/src/stg.d 2008-10-07 09:53:29.000000000 +0200
-@@ -91,25 +91,36 @@
- void TSKstgCtrl(int id)
- {
- switch(TskBuf[id].step){
-- case 0:
-+ case 0:
- area_num = AREA_01;
-- scene_num = SCENE_01;
-- debug{
-- //area_num = AREA_02;
-- //area_num = AREA_03;
-- //area_num = AREA_04;
-- //area_num = AREA_05;
-- //scene_num = SCENE_02;
-- //scene_num = SCENE_03;
-- //scene_num = SCENE_04;
-- //scene_num = SCENE_05;
-- //scene_num = SCENE_06;
-- //scene_num = SCENE_07;
-- //scene_num = SCENE_08;
-- //scene_num = SCENE_09;
-- //scene_num = SCENE_10;
-- }
-- stg_bgm = -1;
-+ scene_num = SCENE_01;
-+
-+ switch(area_num){
-+ case AREA_01:
-+ stg_ctrl = STG_MAIN;
-+ setTSK(GROUP_01,&TSKstg01);
-+ break;
-+ case AREA_02:
-+ stg_ctrl = STG_MAIN;
-+ setTSK(GROUP_01,&TSKstg02);
-+ break;
-+ case AREA_03:
-+ stg_ctrl = STG_MAIN;
-+ setTSK(GROUP_01,&TSKstg03);
-+ break;
-+ case AREA_04:
-+ stg_ctrl = STG_MAIN;
-+ setTSK(GROUP_01,&TSKstg04);
-+ break;
-+ case AREA_05:
-+ stg_ctrl = STG_MAIN;
-+ setTSK(GROUP_01,&TSKstg05);
-+ break;
-+ default:
-+ g_step = GSTEP_CLEAR;
-+ break;
-+ }
-+ stg_bgm = -1;
- stg_ctrl = STG_INIT;
- TskBuf[id].step++;
- break;
-@@ -177,7 +188,7 @@
- {
- switch(TskBuf[id].step){
- case 0:
-- stg_ctrl = STG_INIT;
-+// stg_ctrl = ;
- TskBuf[id].step++;
- break;
- case 1:
-diff -Naur a2k-org/a2k_src/src/system.d a2k/a2k_src/src/system.d
---- a2k-org/a2k_src/src/system.d 2005-05-19 22:31:20.000000000 +0200
-+++ a2k/a2k_src/src/system.d 2008-10-07 09:53:29.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/03/24 jumpei isshiki
- */
-
--private import std.stdio;
-+private import std.c.stdio;
- private import std.math;
- private import std.random;
- private import std.string;
-@@ -22,6 +22,11 @@
- private import stg;
- private import bg;
- private import ship;
-+
-+const real PI = 0x1.921fb54442d1846ap+1;
-+const real PI_2 = 1.57079632679489661923;
-+const real PI_4 = 0.78539816339744830962;
-+const real SQRT2 = 1.41421356237309504880;
-
- private char[] str_buf;
- private int wrk1_time;
-diff -Naur a2k-org/a2k_src/src/task.d a2k/a2k_src/src/task.d
---- a2k-org/a2k_src/src/task.d 2008-02-07 00:38:58.000000000 +0100
-+++ a2k/a2k_src/src/task.d 2008-10-07 09:53:29.000000000 +0200
-@@ -153,7 +153,9 @@
- TskBuf[i].fp_exit = null;
- TskBuf[i].image = null;
- TskBuf[i].bullet_command = null;
-- TskBuf[i].bullet_state = null;
-+ TskBuf[i].bullet_state = null;
-+ TskBuf[i].bullet_accx = 0;
-+ TskBuf[i].bullet_accy = 0;
- }
- TskBuf[i].tskid = TSKID_NONE;
- TskBuf[i].entry = -1;
-diff -Naur a2k-org/a2k_src/src/title.d a2k/a2k_src/src/title.d
---- a2k-org/a2k_src/src/title.d 2008-02-12 23:50:14.000000000 +0100
-+++ a2k/a2k_src/src/title.d 2008-10-07 09:53:29.000000000 +0200
-@@ -6,7 +6,7 @@
- 2004/04/08 jumpei isshiki
- */
-
--private import std.stdio;
-+private import std.c.stdio;
- private import std.math;
- private import std.string;
- private import SDL;
-diff -Naur a2k-org/a2k_src/src/util_ascii.d a2k/a2k_src/src/util_ascii.d
---- a2k-org/a2k_src/src/util_ascii.d 2005-05-19 22:30:50.000000000 +0200
-+++ a2k/a2k_src/src/util_ascii.d 2008-10-07 09:53:29.000000000 +0200
-@@ -13,7 +13,15 @@
-
- const float ASC_SIZE = (16.0f + 2.0f);
-
--private float[][] ascii_font = [
-+float[][] ascii_font;
-+
-+
-+
-+private char[] ascii_dict = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.:!?\"'-=+ 0123456789";
-+
-+void initASCII()
-+{
-+static float[][] af = [
- /* 'A' */
- [
- 3, 0, 11, 2,
-@@ -328,10 +336,14 @@
- ],
- ];
-
--private char[] ascii_dict = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.:!?\"'-=+ 0123456789";
-+ ascii_font.length = af.length;
-+ for (int i = 0; i < ascii_font.length; i++) {
-+ ascii_font[i].length = af[i].length;
-+ for (int j = 0; j < ascii_font[i].length; j++) {
-+ ascii_font[i][j] = af[i][j];
-+ }
-+ }
-
--void initASCII()
--{
- for(int i = 0; i < ascii_font.length; i++){
- for(int j = 0; j < ascii_font[i].length; j += 4){
- ascii_font[i][j+2] += 1.0f;
-diff -Naur a2k-org/a2k_src/src/util_pad.d a2k/a2k_src/src/util_pad.d
---- a2k-org/a2k_src/src/util_pad.d 2008-02-12 23:46:38.000000000 +0100
-+++ a2k/a2k_src/src/util_pad.d 2008-10-07 09:53:29.000000000 +0200
-@@ -7,7 +7,8 @@
- */
-
- private import SDL;
--
-+private import SDL_Keysym;
-+private import SDL_keyboard;
- enum{
- PAD_UP = 0x01,
- PAD_DOWN = 0x02,
-diff -Naur a2k-org/a2k_src/src/util_sdl.d a2k/a2k_src/src/util_sdl.d
---- a2k-org/a2k_src/src/util_sdl.d 2008-02-06 01:41:02.000000000 +0100
-+++ a2k/a2k_src/src/util_sdl.d 2008-10-07 10:30:33.000000000 +0200
-@@ -6,9 +6,12 @@
- 2003/11/28 jumpei isshiki
- */
-
-+private import std.stdio;
- private import std.string;
--private import SDL;
-+private import SDL;
-+private import SDL_mouse;
- private import opengl;
-+private import util_pad;
- private import define;
-
- enum{
-@@ -30,11 +33,18 @@
- EX,
- EY,
- }
--
-+
-+struct VEC_POS {
-+ float px;
-+ float py;
-+ float pz;
-+}
-
- SDL_Surface* primary;
- SDL_Surface*[] offscreen;
--
-+
-+const float SCREEN_RATIOX = cast(float)(SCREEN_X / 2.0f);
-+const float SCREEN_RATIOY = cast(float)(SCREEN_Y / 2.0f);
- const float BASE_Z = 2.0f;
- float cam_scr = -0.75f;
- float cam_pos;
-@@ -43,20 +53,27 @@
- private int height = SCREEN_Y;
- private float nearPlane = 0.0f;
- private float farPlane = 1000.0f;
--
-+private GLuint TEXTURE_NONE = 0xffffffff;
- private GLuint[] tex_bank;
-
--int initSDL()
-+int initSDL()
-+
- {
- if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_JOYSTICK) < 0){
- return 0;
- }
-
- Uint32 videoFlags;
-- videoFlags = SDL_OPENGL | SDL_FULLSCREEN;
-+// videoFlags = SDL_OPENGL | SDL_FULLSCREEN;
- //videoFlags = SDL_OPENGL | SDL_RESIZABLE;
- debug{
-- videoFlags = SDL_OPENGL | SDL_RESIZABLE;
-+ if((pads & PAD_BUTTON1)){
-+ videoFlags = SDL_OPENGL | SDL_FULLSCREEN;
-+ }else{
-+ videoFlags = SDL_OPENGL | SDL_RESIZABLE;
-+ }
-+ }else{
-+ videoFlags = SDL_OPENGL | SDL_FULLSCREEN;
- }
- primary = SDL_SetVideoMode(width, height, 0, videoFlags);
- if(primary == null){
-@@ -67,14 +84,15 @@
- tex_bank.length = SURFACE_MAX;
- for(int i = 0; i < SURFACE_MAX; i++){
- offscreen[i] = null;
-- tex_bank[i] = cast(GLuint)-1;
-+ tex_bank[i] = TEXTURE_NONE;
- }
-
- glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
- resizedSDL(width, height);
- SDL_ShowCursor(SDL_DISABLE);
-
-- SDL_WM_SetCaption(cast(char*)PROJECT_NAME, null);
-+ SDL_WM_SetCaption(cast(char*)PROJECT_NAME, null);
-+ SDL_WM_SetIcon(SDL_LoadBMP("icon.bmp"), null);
-
- return 1;
- }
-@@ -96,9 +114,9 @@
- SDL_ShowCursor(SDL_ENABLE);
- SDL_Quit();
- }
-+
-
--
--void readSDLtexture(char[] fname, int bank)
-+void readSDLtexture(char[] fname, int bank)
- {
- offscreen[bank] = SDL_LoadBMP(toStringz(fname));
- if(offscreen[bank]){
-@@ -110,31 +128,28 @@
- }
- }
-
--
--void bindSDLtexture(int bank)
-+void bindSDLtexture(int bank)
- {
-- if(tex_bank[bank] != -1) glBindTexture(GL_TEXTURE_2D, tex_bank[bank]);
-+ if(tex_bank[bank] != TEXTURE_NONE) glBindTexture(GL_TEXTURE_2D, tex_bank[bank]);
- }
-
--
--void clearSDL()
-+void clearSDL()
- {
- glClear(GL_COLOR_BUFFER_BIT);
- }
-
--
--void flipSDL()
-+void flipSDL()
- {
- glFlush();
- SDL_GL_SwapBuffers();
- }
-
--
--void resizedSDL(int w, int h)
-+void resizedSDL(int w, int h)
- {
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
-+ w = (w ? w : 1);
- glFrustum(-nearPlane,nearPlane,
- -nearPlane * h / w,
- nearPlane * h / w,
-diff -Naur a2k-org/makefile a2k/makefile
---- a2k-org/makefile 1970-01-01 01:00:00.000000000 +0100
-+++ a2k/makefile 2008-10-07 09:53:29.000000000 +0200
-@@ -0,0 +1,18 @@
-+DSRC=$(shell find a2k_src/src -name "*.d")
-+SOURCES=$(DSRC) a2k_src/import/SDL_video.d a2k_src/import/SDL_mixer.d
-+OBJS=$(SOURCES:.d=.o)
-+CFLAGS=
-+DFLAGS=-O -Ia2k_src/import -Ia2k_src/src -I/usr/X11R6/include/
-+EXE=area2048
-+
-+all: $(EXE)
-+
-+$(EXE): $(OBJS)
-+ gcc $(CFLAGS) -o $@ $(OBJS) $(COBJS) -lbulletml_d -L/usr/local/lib -L/usr/lib -lgphobos -lpthread -lGLU -lGL -lglut -lm -lstdc++ -lSDL -lSDL_mixer
-+
-+$(OBJS): %.o: %.d
-+ gdmd -d -c -of$@ $(DFLAGS) $<
-+
-+clean:
-+ rm a2k_src/src/*.o
-+