summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-action/gunroar/files/gunroar-0.15.diff')
-rw-r--r--games-action/gunroar/files/gunroar-0.15.diff589
1 files changed, 589 insertions, 0 deletions
diff --git a/games-action/gunroar/files/gunroar-0.15.diff b/games-action/gunroar/files/gunroar-0.15.diff
new file mode 100644
index 0000000..ee24506
--- /dev/null
+++ b/games-action/gunroar/files/gunroar-0.15.diff
@@ -0,0 +1,589 @@
+diff -Naur gr/import/opengl.d gr-gentoo/import/opengl.d
+--- gr/import/opengl.d 2005-06-18 02:45:59.000000000 +0200
++++ gr-gentoo/import/opengl.d 2007-09-19 22:41:13.000000000 +0200
+@@ -1,10 +1,4 @@
+-version (Win32) {
+- private import std.c.windows.windows;
+- extern(Windows):
+-}
+-version (linux) {
+ extern(C):
+-}
+
+ alias uint GLenum;
+ alias ubyte GLboolean;
+@@ -1116,7 +1110,7 @@
+ /*************************************************************/
+
+ void /*APIENTRY*/glAccum (GLenum op, GLfloat value);
+-void /*APIENTRY*/glAlphaFunc (GLenum func, GLclampf ref);
++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);
+@@ -1369,7 +1363,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 ref, 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 gr/import/openglu.d gr-gentoo/import/openglu.d
+--- gr/import/openglu.d 2005-06-18 02:45:59.000000000 +0200
++++ gr-gentoo/import/openglu.d 2007-09-19 22:40:03.000000000 +0200
+@@ -1,11 +1,6 @@
+ import opengl;
+
+-version (Win32) {
+- extern(Windows):
+-}
+-version (linux) {
+ extern(C):
+-}
+
+ GLubyte* gluErrorString (
+ GLenum errCode);
+diff -Naur gr/import/SDL.d gr-gentoo/import/SDL.d
+--- gr/import/SDL.d 2005-06-18 02:45:59.000000000 +0200
++++ gr-gentoo/import/SDL.d 2007-09-19 22:39:40.000000000 +0200
+@@ -20,18 +20,28 @@
+ slouken@devolution.com
+ */
+
+-import SDL_types;
+-import SDL_getenv;
+-import SDL_error;
+-import SDL_rwops;
+-import SDL_timer;
+-import SDL_audio;
+-import SDL_cdrom;
+-import SDL_joystick;
+-import SDL_events;
+-import SDL_video;
+-import SDL_byteorder;
+-import SDL_Version;
++public import SDL_Keysym;
++public import SDL_Version;
++public import SDL_active;
++public import SDL_audio;
++public import SDL_byteorder;
++public import SDL_cdrom;
++public import SDL_copying;
++public import SDL_endian;
++public import SDL_error;
++public import SDL_events;
++public import SDL_getenv;
++public import SDL_joystick;
++public import SDL_keyboard;
++public import SDL_mouse;
++public import SDL_mutex;
++public import SDL_quit;
++public import SDL_rwops;
++public import SDL_syswm;
++public import SDL_thread;
++public import SDL_timer;
++public import SDL_types;
++public import SDL_video;
+
+ extern(C):
+
+diff -Naur gr/Makefile gr-gentoo/Makefile
+--- gr/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ gr-gentoo/Makefile 2007-09-19 22:39:40.000000000 +0200
+@@ -0,0 +1,25 @@
++DC=gdmd
++#DC=gdc
++ifeq ($(DC), gdmd)
++DFLAGS=-O -d -release -Iimport -Isrc
++#DFLAGS=-g -debug -Iimport -Isrc
++DOUT=-of
++else
++DFLAGS=-O -frelease -Iimport -Isrc
++#DFLAGS=-g -fdebug -Iimport -Isrc
++DOUT=-o
++endif
++
++DSRC=$(shell find src/abagames -name "*.d")
++SOURCES=$(DSRC) import/SDL_video.d import/SDL_mixer.d
++OBJS=$(SOURCES:.d=.o)
++EXE=gunroar
++
++all: $(EXE)
++
++$(EXE): $(OBJS)
++ gcc -o $@ $(OBJS) -lgphobos -lpthread -lm -lSDL -lGL -lGLU -lSDL_mixer
++
++$(OBJS): %.o: %.d
++ $(DC) -c $(DOUT)$@ $(DFLAGS) $<
++
+diff -Naur gr/src/abagames/gr/bullet.d gr-gentoo/src/abagames/gr/bullet.d
+--- gr/src/abagames/gr/bullet.d 2005-06-18 02:46:00.000000000 +0200
++++ gr-gentoo/src/abagames/gr/bullet.d 2007-09-19 22:39:40.000000000 +0200
+@@ -202,7 +202,7 @@
+ public int removeIndexedBullets(int idx) {
+ int n = 0;
+ foreach (Bullet b; actor) {
+- if (b.exists && b.enemyIdx == idx) {
++ if (b.exists == true && b.enemyIdx == idx) {
+ b.changeToCrystal();
+ n++;
+ }
+@@ -212,7 +212,7 @@
+
+ public void checkShotHit(Vector pos, Collidable shape, Shot shot) {
+ foreach (Bullet b; actor)
+- if (b.exists && b.destructive)
++ if (b.exists == true && b.destructive == true)
+ b.checkShotHit(pos, shape, shot);
+ }
+ }
+diff -Naur gr/src/abagames/gr/enemy.d gr-gentoo/src/abagames/gr/enemy.d
+--- gr/src/abagames/gr/enemy.d 2005-07-17 13:02:45.000000000 +0200
++++ gr-gentoo/src/abagames/gr/enemy.d 2007-09-19 22:39:40.000000000 +0200
+@@ -755,7 +755,7 @@
+ public bool checkShipCollision(EnemyState es, float x, float y, bool largeOnly = false) {
+ if (es.destroyedCnt >= 0 || (largeOnly && type != EnemyType.LARGE))
+ return false;
+- return shape.checkShipCollision(x - es.pos.x, y - es.pos.y, es.deg);
++ return shape.checkShipCollision(x - es.pos.x, y - es.pos.y, es.deg);
+ }
+
+ public bool move(EnemyState es) {
+@@ -1080,7 +1080,7 @@
+ tgs.num = rearMainTurretNum;
+ tgs.alignType = TurretGroupSpec.AlignType.STRAIGHT;
+ tgs.offset.y = size * (0.9f + rand.nextSignedFloat(0.05f));
+- }
++ }
+ TurretSpec pts;
+ if (subTurretNum > 0) {
+ int frontSubTurretNum = (subTurretNum + 2) / 4;
+@@ -1408,7 +1408,7 @@
+
+ public Enemy checkHitShip(float x, float y, Enemy deselection = null, bool largeOnly = false) {
+ foreach (Enemy e; actor)
+- if (e.exists && e != deselection)
++ if (e.exists == true && e != deselection)
+ if (e.checkHitShip(x, y, largeOnly))
+ return e;
+ return null;
+@@ -1416,7 +1416,7 @@
+
+ public bool hasBoss() {
+ foreach (Enemy e; actor)
+- if (e.exists && e.isBoss)
++ if (e.exists == true && e.isBoss == true)
+ return true;
+ return false;
+ }
+diff -Naur gr/src/abagames/gr/gamemanager.d gr-gentoo/src/abagames/gr/gamemanager.d
+--- gr/src/abagames/gr/gamemanager.d 2005-09-11 02:47:40.000000000 +0200
++++ gr-gentoo/src/abagames/gr/gamemanager.d 2007-09-19 22:39:40.000000000 +0200
+@@ -503,7 +503,7 @@
+ MouseState mouseInput = (cast(RecordableMouse) mouse).getState(false);
+ if ((input.button & PadState.Button.A) ||
+ (gameMode == InGameState.GameMode.MOUSE &&
+- (mouseInput.button & MouseState.Button.LEFT))) {
++ (mouseInput.buttona & MouseState.Buttonf.LEFT))) {
+ if (gameOverCnt > 60 && !btnPressed)
+ gameManager.startTitle(true);
+ btnPressed = true;
+diff -Naur gr/src/abagames/gr/mouse.d gr-gentoo/src/abagames/gr/mouse.d
+--- gr/src/abagames/gr/mouse.d 2005-09-11 02:47:40.000000000 +0200
++++ gr-gentoo/src/abagames/gr/mouse.d 2007-09-19 22:39:40.000000000 +0200
+@@ -4,7 +4,8 @@
+ * Copyright 2005 Kenta Cho. Some rights reserved.
+ */
+ module abagames.gr.mouse;
+-
++
++public import SDL_mouse;
+ private import abagames.util.sdl.mouse;
+ private import abagames.util.sdl.screen;
+
+diff -Naur gr/src/abagames/gr/reel.d gr-gentoo/src/abagames/gr/reel.d
+--- gr/src/abagames/gr/reel.d 2005-06-18 02:46:00.000000000 +0200
++++ gr-gentoo/src/abagames/gr/reel.d 2007-09-19 22:39:40.000000000 +0200
+@@ -165,7 +165,8 @@
+ public void targetDeg(float td) {
+ if ((td - _targetDeg) > 1)
+ ofs += 0.1f;
+- return _targetDeg = td;
++ _targetDeg = td;
++ return;
+ }
+
+ public void accelerate() {
+@@ -272,7 +273,7 @@
+ }
+
+ public void set(int n, IndicatorType type, float size, float x, float y) {
+- if (exists && this.type == IndicatorType.SCORE) {
++ if (exists == true && this.type == IndicatorType.SCORE) {
+ if (this.target[targetIdx].flyingTo == FlyingToType.RIGHT)
+ decTargetY();
+ scoreReel.addReelScore(target[targetNum - 1].n);
+diff -Naur gr/src/abagames/gr/ship.d gr-gentoo/src/abagames/gr/ship.d
+--- gr/src/abagames/gr/ship.d 2005-09-11 02:47:40.000000000 +0200
++++ gr-gentoo/src/abagames/gr/ship.d 2007-09-19 22:39:40.000000000 +0200
+@@ -130,7 +130,7 @@
+ float sf = false;
+ for (int i = 0; i < boatNum; i++) {
+ boat[i].move();
+- if (boat[i].hasCollision &&
++ if (boat[i].hasCollision == true &&
+ boat[i].pos.x > field.size.x / 3 && boat[i].pos.y < -field.size.y / 4 * 3)
+ sf = true;
+ }
+@@ -162,7 +162,8 @@
+ public void draw() {
+ for (int i = 0; i < boatNum; i++)
+ boat[i].draw();
+- if (gameMode == InGameState.GameMode.DOUBLE_PLAY && boat[0].hasCollision) {
++ if (gameMode == InGameState.GameMode.DOUBLE_PLAY &&
++ boat[0].hasCollision == true) {
+ Screen.setColor(0.5f, 0.5f, 0.9f, 0.8f);
+ glBegin(GL_LINE_STRIP);
+ glVertex2f(boat[0].pos.x, boat[0].pos.y);
+@@ -183,7 +184,7 @@
+ for (int i = 0; i < boatNum; i++)
+ boat[i].drawFront();
+ }
+-
++
+ public void drawShape() {
+ boat[0].drawShape();
+ }
+@@ -898,13 +899,13 @@
+ foy = 0.01f;
+ fireDeg = atan2(fox, foy);
+ assert(fireDeg <>= 0);
+- if (mouseInput.button & (MouseState.Button.LEFT | MouseState.Button.RIGHT)) {
++ if (mouseInput.buttona & (MouseState.Buttonf.LEFT | MouseState.Buttonf.RIGHT)) {
+ if (fireCnt <= 0) {
+ SoundManager.playSe("shot.wav");
+ int foc = (fireSprCnt % 2) * 2 - 1;
+ float rsd = stickInput.right.vctSize;
+ float fstd = 0.05f;
+- if (mouseInput.button & MouseState.Button.RIGHT)
++ if (mouseInput.buttona & MouseState.Buttonf.RIGHT)
+ fstd += 0.5f;
+ fireSprDeg += (fstd - fireSprDeg) * 0.16f;
+ firePos.x = _pos.x + cos(fireDeg + PI) * 0.2f * foc;
+diff -Naur gr/src/abagames/gr/title.d gr-gentoo/src/abagames/gr/title.d
+--- gr/src/abagames/gr/title.d 2005-09-11 02:47:40.000000000 +0200
++++ gr-gentoo/src/abagames/gr/title.d 2007-09-19 22:39:40.000000000 +0200
+@@ -56,7 +56,7 @@
+ glEnable(GL_TEXTURE_2D);
+ logo.bind();
+ Screen.setColor(1, 1, 1);
+- glBegin(GL_TRIANGLE_FAN);
++ glBegin(GL_TRIANGLE_FAN);
+ glTexCoord2f(0, 0);
+ glVertex2f(0, -63);
+ glTexCoord2f(1, 0);
+@@ -118,7 +118,7 @@
+ if (btnPressedCnt <= 0) {
+ if (((input.button & PadState.Button.A) ||
+ (gameMode == InGameState.GameMode.MOUSE &&
+- (mouseInput.button & MouseState.Button.LEFT))) &&
++ (mouseInput.buttona & MouseState.Buttonf.LEFT))) &&
+ gameMode >= 0)
+ gameManager.startInGame(gameMode);
+ int gmc = 0;
+@@ -145,7 +145,7 @@
+ }
+ if ((input.button & (PadState.Button.A | PadState.Button.B)) ||
+ (input.dir & (PadState.Dir.UP | PadState.Dir.DOWN)) ||
+- (mouseInput.button & MouseState.Button.LEFT))
++ (mouseInput.buttona & MouseState.Buttonf.LEFT))
+ btnPressedCnt = 6;
+ else
+ btnPressedCnt--;
+diff -Naur gr/src/abagames/gr/turret.d gr-gentoo/src/abagames/gr/turret.d
+--- gr/src/abagames/gr/turret.d 2005-07-17 13:02:46.000000000 +0200
++++ gr-gentoo/src/abagames/gr/turret.d 2007-09-19 22:39:40.000000000 +0200
+@@ -142,7 +142,7 @@
+ else if (deg < -spec.turnRange)
+ deg = -spec.turnRange;
+ cnt++;
+- if (field.checkInField(pos) || (parent.isBoss && cnt % 4 == 0))
++ if (field.checkInField(pos) || (parent.isBoss == true && cnt % 4 == 0))
+ appCnt++;
+ if (cnt >= spec.interval) {
+ if (spec.blind || (fabs(od) <= spec.turnSpeed &&
+@@ -155,7 +155,7 @@
+ }
+ if (cnt <= 0 && -cnt % spec.burstInterval == 0 &&
+ ((spec.invisible && field.checkInField(pos)) ||
+- (spec.invisible && parent.isBoss && field.checkInOuterField(pos)) ||
++ (spec.invisible && parent.isBoss == true && field.checkInOuterField(pos)) ||
+ (!spec.invisible && field.checkInFieldExceptTop(pos))) &&
+ pos.dist(shipPos) > spec.minRange) {
+ float bd = baseDeg + deg;
+@@ -913,7 +913,7 @@
+ assert(swingAmpVel <>= 0);
+ assert(distRatio <>= 0);
+ assert(xReverse == 1 || xReverse == -1);
+-
++
+ }
+
+ public this() {
+diff -Naur gr/src/abagames/util/logger.d gr-gentoo/src/abagames/util/logger.d
+--- gr/src/abagames/util/logger.d 2005-07-03 09:05:23.000000000 +0200
++++ gr-gentoo/src/abagames/util/logger.d 2007-09-19 22:39:40.000000000 +0200
+@@ -5,7 +5,7 @@
+ */
+ module abagames.util.logger;
+
+-private import std.cstream;
++private import std.stream;
+ private import std.string;
+
+ /**
+@@ -55,29 +55,23 @@
+ public class Logger {
+
+ public static void info(char[] msg, bool nline = true) {
+- if (nline)
+- std.cstream.derr.writeLine(msg);
+- else
+- std.cstream.derr.writeString(msg);
++// stderr.writeString(msg);
+ }
+
+ public static void info(double n, bool nline = true) {
+- if (nline)
+- std.cstream.derr.writeLine(std.string.toString(n));
+- else
+- std.cstream.derr.writeString(std.string.toString(n) ~ " ");
++ // stderr.writeString(std.string.toString(n) ~ " ");
+ }
+
+ public static void error(char[] msg) {
+- std.cstream.derr.writeLine("Error: " ~ msg);
++ //stderr.writeLine("Error: " ~ msg);
+ }
+
+ public static void error(Exception e) {
+- std.cstream.derr.writeLine("Error: " ~ e.toString());
++ // stderr.writeLine("Error: " ~ e.toString());
+ }
+
+ public static void error(Error e) {
+- std.cstream.derr.writeLine("Error: " ~ e.toString());
++ // stderr.writeLine("Error: " ~ e.toString());
+ if (e.next)
+ error(e.next);
+ }
+diff -Naur gr/src/abagames/util/rand.d gr-gentoo/src/abagames/util/rand.d
+--- gr/src/abagames/util/rand.d 2005-06-18 02:46:00.000000000 +0200
++++ gr-gentoo/src/abagames/util/rand.d 2007-09-19 22:39:40.000000000 +0200
+@@ -165,14 +165,14 @@
+
+ void next_state()
+ {
+- uint *p=state;
++ uint *p=state.ptr;
+
+ /* if init_genrand() has not been called, */
+ /* a default initial seed is used */
+ if (initf==0) init_genrand(5489UL);
+
+ left = N;
+- next = state;
++ next = state.ptr;
+
+ for (int j=N-M+1; --j; p++)
+ *p = p[M] ^ TWIST(p[0], p[1]);
+diff -Naur gr/src/abagames/util/sdl/luminous.d gr-gentoo/src/abagames/util/sdl/luminous.d
+--- gr/src/abagames/util/sdl/luminous.d 2005-06-18 02:46:00.000000000 +0200
++++ gr-gentoo/src/abagames/util/sdl/luminous.d 2007-09-19 22:39:40.000000000 +0200
+@@ -32,9 +32,9 @@
+ }
+
+ private void makeLuminousTexture() {
+- uint *data = td;
++ uint *data = td.ptr;
+ int i;
+- memset(data, 0, luminousTextureWidth * luminousTextureHeight * 4 * uint.sizeof);
++ // memset(data, 0, luminousTextureWidth * luminousTextureHeight * 4 * uint.sizeof);
+ glGenTextures(1, &luminousTexture);
+ glBindTexture(GL_TEXTURE_2D, luminousTexture);
+ glTexImage2D(GL_TEXTURE_2D, 0, 4, luminousTextureWidth, luminousTextureHeight, 0,
+diff -Naur gr/src/abagames/util/sdl/mouse.d gr-gentoo/src/abagames/util/sdl/mouse.d
+--- gr/src/abagames/util/sdl/mouse.d 2005-09-11 02:47:41.000000000 +0200
++++ gr-gentoo/src/abagames/util/sdl/mouse.d 2007-09-19 22:39:40.000000000 +0200
+@@ -7,7 +7,28 @@
+
+ private import std.string;
+ private import std.stream;
+-private import SDL;
++public import SDL_Keysym;
++public import SDL_Version;
++public import SDL_active;
++public import SDL_audio;
++public import SDL_byteorder;
++public import SDL_cdrom;
++public import SDL_copying;
++public import SDL_endian;
++public import SDL_error;
++public import SDL_events;
++public import SDL_getenv;
++public import SDL_joystick;
++public import SDL_keyboard;
++public import SDL_mouse;
++public import SDL_mutex;
++public import SDL_quit;
++public import SDL_rwops;
++public import SDL_syswm;
++public import SDL_thread;
++public import SDL_timer;
++public import SDL_types;
++public import SDL_video;
+ private import abagames.util.sdl.input;
+ private import abagames.util.sdl.recordableinput;
+ private import abagames.util.sdl.screen;
+@@ -38,6 +59,16 @@
+
+ public void handleEvent(SDL_Event *event) {
+ }
++
++uint SDL_BUTTON(uint X) { return SDL_PRESSED << (X-1); }
++const uint SDL_BUTTON_LEFT = 1;
++const uint SDL_BUTTON_MIDDLE = 2;
++const uint SDL_BUTTON_RIGHT = 3;
++const uint SDL_BUTTON_WHEELUP = 4;
++const uint SDL_BUTTON_WHEELDOWN = 5;
++const uint SDL_BUTTON_LMASK = SDL_PRESSED << (SDL_BUTTON_LEFT - 1);
++const uint SDL_BUTTON_MMASK = SDL_PRESSED << (SDL_BUTTON_MIDDLE - 1);
++const uint SDL_BUTTON_RMASK = SDL_PRESSED << (SDL_BUTTON_RIGHT - 1);
+
+ public MouseState getState() {
+ int mx, my;
+@@ -56,11 +87,11 @@
+ state.y = 0;
+ else if (state.y >= screen.height)
+ state.x = screen.height - 1;*/
+- state.button = 0;
++ state.buttona = 0;
+ if (btn & SDL_BUTTON(1))
+- state.button |= MouseState.Button.LEFT;
++ state.buttona |= MouseState.Buttonf.LEFT;
+ if (btn & SDL_BUTTON(3))
+- state.button |= MouseState.Button.RIGHT;
++ state.buttona |= MouseState.Buttonf.RIGHT;
+ adjustPos(state);
+ return state;
+ }
+@@ -75,11 +106,11 @@
+
+ public class MouseState {
+ public:
+- static enum Button {
++ static enum Buttonf {
+ LEFT = 1, RIGHT = 2,
+ };
+ float x, y;
+- int button;
++ int buttona;
+ private:
+
+ public static MouseState newInstance() {
+@@ -101,27 +132,27 @@
+ public void set(MouseState s) {
+ x = s.x;
+ y = s.y;
+- button = s.button;
++ buttona = s.buttona;
+ }
+
+ public void clear() {
+- button = 0;
++ buttona = 0;
+ }
+
+ public void read(File fd) {
+ fd.read(x);
+ fd.read(y);
+- fd.read(button);
++ fd.read(buttona);
+ }
+
+ public void write(File fd) {
+ fd.write(x);
+ fd.write(y);
+- fd.write(button);
++ fd.write(buttona);
+ }
+
+ public bool equals(MouseState s) {
+- if (x == s.x && y == s.y && button == s.button)
++ if (x == s.x && y == s.y && buttona == s.buttona)
+ return true;
+ else
+ return false;
+diff -Naur gr/src/abagames/util/sdl/pad.d gr-gentoo/src/abagames/util/sdl/pad.d
+--- gr/src/abagames/util/sdl/pad.d 2005-07-03 09:05:23.000000000 +0200
++++ gr-gentoo/src/abagames/util/sdl/pad.d 2007-09-19 22:39:40.000000000 +0200
+@@ -49,7 +49,7 @@
+ x = SDL_JoystickGetAxis(stick, 0);
+ y = SDL_JoystickGetAxis(stick, 1);
+ }
+- if (keys[SDLK_RIGHT] == SDL_PRESSED || keys[SDLK_KP6] == SDL_PRESSED ||
++ if (keys[SDLK_RIGHT] == SDL_PRESSED || keys[SDLK_KP6] == SDL_PRESSED ||
+ keys[SDLK_d] == SDL_PRESSED || keys[SDLK_l] == SDL_PRESSED ||
+ x > JOYSTICK_AXIS)
+ state.dir |= PadState.Dir.RIGHT;
+@@ -77,7 +77,7 @@
+ SDL_JoystickGetButton(stick, 9) + SDL_JoystickGetButton(stick, 10);
+ }
+ if (keys[SDLK_z] == SDL_PRESSED || keys[SDLK_PERIOD] == SDL_PRESSED ||
+- keys[SDLK_LCTRL] == SDL_PRESSED || keys[SDLK_RCTRL] == SDL_PRESSED ||
++ keys[SDLK_LCTRL] == SDL_PRESSED || keys[SDLK_RCTRL] == SDL_PRESSED ||
+ btn1) {
+ if (!buttonReversed)
+ state.button |= PadState.Button.A;
+@@ -162,6 +162,8 @@
+
+ public class RecordablePad: Pad {
+ mixin RecordableInput!(PadState);
++ public this() {
++ }
+ private:
+
+ public PadState getState(bool doRecord = true) {
+diff -Naur gr/src/abagames/util/sdl/texture.d gr-gentoo/src/abagames/util/sdl/texture.d
+--- gr/src/abagames/util/sdl/texture.d 2005-07-03 09:05:23.000000000 +0200
++++ gr-gentoo/src/abagames/util/sdl/texture.d 2007-09-19 22:39:40.000000000 +0200
+@@ -103,13 +103,13 @@
+ }
+ glBindTexture(GL_TEXTURE_2D, num + ti);
+ gluBuild2DMipmaps(GL_TEXTURE_2D, 4, panelWidth, panelHeight,
+- GL_RGBA, GL_UNSIGNED_BYTE, pixels);
++ GL_RGBA, GL_UNSIGNED_BYTE, pixels.ptr);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+ if (maskColor != 0xffffffffu) {
+ glBindTexture(GL_TEXTURE_2D, maskNum + ti);
+ gluBuild2DMipmaps(GL_TEXTURE_2D, 4, panelWidth, panelHeight,
+- GL_RGBA, GL_UNSIGNED_BYTE, maskPixels);
++ GL_RGBA, GL_UNSIGNED_BYTE, maskPixels.ptr);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+ }
+diff -Naur gr/src/abagames/util/sdl/twinstick.d gr-gentoo/src/abagames/util/sdl/twinstick.d
+--- gr/src/abagames/util/sdl/twinstick.d 2006-03-18 03:42:09.000000000 +0100
++++ gr-gentoo/src/abagames/util/sdl/twinstick.d 2007-09-19 22:39:40.000000000 +0200
+@@ -174,6 +174,8 @@
+
+ public class RecordableTwinStick: TwinStick {
+ mixin RecordableInput!(TwinStickState);
++ public this() {
++ }
+ private:
+
+ public TwinStickState getState(bool doRecord = true) {