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) {