summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarsten Teibes2017-11-01 01:40:59 +0100
committerCarsten Teibes2017-11-01 01:40:59 +0100
commit64132722ac9b1965822b04922be80f27611a7a07 (patch)
tree75a4e3796b3a7107b565b4fbf6df4d2b28414ac3
parent08b34fb1a1842fecb4306e83064163f383acb90e (diff)
downloadaur-64132722ac9b1965822b04922be80f27611a7a07.tar.gz
[upd] 1.1→1.2.alpha
-rw-r--r--.SRCINFO17
-rw-r--r--PKGBUILD39
-rw-r--r--alex4.desktop1
-rw-r--r--allegro-4.2.patch298
-rw-r--r--unix-port.patch781
5 files changed, 20 insertions, 1116 deletions
diff --git a/.SRCINFO b/.SRCINFO
index e1c889575489..d4322fe1c38b 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,23 +1,20 @@
pkgbase = alex4
pkgdesc = Help Alex the Allegator rescue Lola before the humans make a pair of shoes out of her!
- pkgver = 1.1
- pkgrel = 5
+ pkgver = 1.2.alpha
+ pkgrel = 1
url = http://allegator.sourceforge.net
install = alex4.install
arch = i686
arch = x86_64
license = GPL2
- depends = dumb
- source = http://downloads.sourceforge.net/project/allegator/Alex4/source%20and%20data/alex4src_data.zip
+ depends = aldumb
+ depends = allegro4
+ source = alex4-1.2.alpha.tar.gz::https://github.com/carstene1ns/alex4/archive/1.2-alpha.tar.gz
source = alex4.png
- source = unix-port.patch
- source = allegro-4.2.patch
source = alex4.desktop
- sha256sums = d266d7fba64fbfedf13240d3d0eb21b8bacbedeaa5f22b26a27d472c8d23f103
+ sha256sums = 0fe6e9341d52623503c87f778926c33e17f393059e8a572e779e1a15f678414a
sha256sums = 236a8d163ee8aa94073aa1ec969a85e887b3c70fefbcd03b1f41b93b09fa32c6
- sha256sums = 5bb70ca82bcd0df0ed72eccada0c9ccb37a570d7c62ea8a076bdf2169a15c2e5
- sha256sums = ea3e6ffd558cbdb6c392d598499f0780de8c0e456da554531c5c975fe8688d28
- sha256sums = b7fc0854e9a07f08bd90f59aaf99011afc3c6c2a0ad0b244ec04694ce0ff19dd
+ sha256sums = 780063f3f8b72f9a4310a4929f9a3b3a229ada199a2175e04b65cd49ff1e2644
pkgname = alex4
diff --git a/PKGBUILD b/PKGBUILD
index 6cf69232878b..42d5b14b56ee 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,45 +2,32 @@
# Contributor: megadriver <megadriver at gmx dot com>
pkgname=alex4
-pkgver=1.1
-pkgrel=5
+pkgver=1.2.alpha
+pkgrel=1
pkgdesc="Help Alex the Allegator rescue Lola before the humans make a pair of shoes out of her!"
url="http://allegator.sourceforge.net"
arch=('i686' 'x86_64')
license=('GPL2')
-depends=('dumb')
+depends=('aldumb' 'allegro4')
install=$pkgname.install
-source=("http://downloads.sourceforge.net/project/allegator/Alex4/source%20and%20data/alex4src_data.zip"
+source=($pkgname-$pkgver.tar.gz::"https://github.com/carstene1ns/alex4/archive/${pkgver%.*}-alpha.tar.gz"
"$pkgname.png"
- "unix-port.patch"
- "allegro-4.2.patch"
"$pkgname.desktop")
-sha256sums=('d266d7fba64fbfedf13240d3d0eb21b8bacbedeaa5f22b26a27d472c8d23f103'
+sha256sums=('0fe6e9341d52623503c87f778926c33e17f393059e8a572e779e1a15f678414a'
'236a8d163ee8aa94073aa1ec969a85e887b3c70fefbcd03b1f41b93b09fa32c6'
- '5bb70ca82bcd0df0ed72eccada0c9ccb37a570d7c62ea8a076bdf2169a15c2e5'
- 'ea3e6ffd558cbdb6c392d598499f0780de8c0e456da554531c5c975fe8688d28'
- 'b7fc0854e9a07f08bd90f59aaf99011afc3c6c2a0ad0b244ec04694ce0ff19dd')
-
-prepare() {
- cd alex4src
-
- # make compatible with modern environment
- patch -Np1 < ../unix-port.patch
- patch -Np1 < ../allegro-4.2.patch
-}
+ '780063f3f8b72f9a4310a4929f9a3b3a229ada199a2175e04b65cd49ff1e2644')
build() {
- cd alex4src/src
-
- LDFLAGS=-lm make PREFIX=/usr
+ make -C $pkgname-${pkgver%.*}-alpha/src PREFIX=/usr
}
package() {
- cd alex4src
+ cd $pkgname-${pkgver%.*}-alpha
- make -C src PREFIX="$pkgdir/usr" install
- install -Dm644 alex4.ini "$pkgdir"/usr/share/alex4/alex4.ini
+ make -C src PREFIX=/usr DESTDIR="$pkgdir/" install
+ # config
+ install -Dm0644 alex4.ini "$pkgdir"/usr/share/alex4/alex4.ini
# desktop entry
- install -Dm644 ../$pkgname.png "$pkgdir"/usr/share/pixmaps/$pkgname.png
- install -Dm644 ../$pkgname.desktop "$pkgdir"/usr/share/applications/$pkgname.desktop
+ install -Dm0644 ../$pkgname.png "$pkgdir"/usr/share/pixmaps/$pkgname.png
+ install -Dm0644 ../$pkgname.desktop "$pkgdir"/usr/share/applications/$pkgname.desktop
}
diff --git a/alex4.desktop b/alex4.desktop
index b4d13044be32..eedf2587d2da 100644
--- a/alex4.desktop
+++ b/alex4.desktop
@@ -1,6 +1,5 @@
[Desktop Entry]
Type=Application
-Version=1.0
Name=Alex the Allegator 4
Comment=Retro platform game
Icon=alex4
diff --git a/allegro-4.2.patch b/allegro-4.2.patch
deleted file mode 100644
index a5f869091ac1..000000000000
--- a/allegro-4.2.patch
+++ /dev/null
@@ -1,298 +0,0 @@
-Description: Get rid of deprecated Allegro functions.
-Forwarded: yes
-Author: Peter De Wachter <pdewacht@gmail.com>
-Last-Update: 2009-05-07
-
---- a/src/edit.c
-+++ b/src/edit.c
-@@ -69,8 +69,8 @@
- }
-
- // show stuff
-- textprintf(bmp, data[THE_FONT].dat, 1, 1, 0, "TILE: %d,%d", tx, ty);
-- textprintf(bmp, data[THE_FONT].dat, 1, 11, 0, "SIZE: %d,%d", map->width, map->height);
-+ textprintf_ex(bmp, data[THE_FONT].dat, 1, 1, 0, -1, "TILE: %d,%d", tx, ty);
-+ textprintf_ex(bmp, data[THE_FONT].dat, 1, 11, 0, -1, "SIZE: %d,%d", map->width, map->height);
-
- // show start pos
- x = (ABS(map->start_x) << 4) - map->offset_x;
-@@ -80,7 +80,7 @@
-
- // draw status bar
- rectfill(bmp, 0, 110, 159, 119, 1);
-- textprintf(bmp, data[THE_FONT].dat, 1, 111, 4, "EDITING: %s", get_filename(edit_path_and_file));
-+ textprintf_ex(bmp, data[THE_FONT].dat, 1, 111, 4, -1, "EDITING: %s", get_filename(edit_path_and_file));
- }
- else if (edit_mode == EDIT_MODE_SELECT) { // draw tile palette
- // calculate offset depending on mouse pointer
-@@ -104,16 +104,16 @@
- else if (edit_mode == EDIT_MODE_STATS) { // draw map properties
- int ty = 16;
- clear_to_color(bmp, 3);
-- textprintf(bmp, data[THE_FONT].dat, 1, 1, 1, "%s (props)", get_filename(edit_path_and_file));
-+ textprintf_ex(bmp, data[THE_FONT].dat, 1, 1, 1, -1, "%s (props)", get_filename(edit_path_and_file));
- line(bmp, 0, 10, 159, 10, 1);
-- textprintf(bmp, data[THE_FONT].dat, 1, ty+=10, 1, "Win by:");
-- textprintf(bmp, data[THE_FONT].dat, 1, ty+=10, 1, " 1) reach exit (%s)", (map->win_conditions & MAP_WIN_EXIT ? "X" : " "));
-- textprintf(bmp, data[THE_FONT].dat, 1, ty+=10, 1, " 2) kill boss (%s)", (map->win_conditions & MAP_WIN_KILL_GUARDIAN ? "X" : " "));
-- textprintf(bmp, data[THE_FONT].dat, 1, ty+=10, 1, " 3) kill all (%s)", (map->win_conditions & MAP_WIN_KILL_ALL ? "X" : " "));
-- textprintf(bmp, data[THE_FONT].dat, 1, ty+=10, 1, "4) Boss level: (%s)", (map->boss_level ? "X" : " "));
-- textprintf(bmp, data[THE_FONT].dat, 1, ty+=10, 1, "5) Name: %s", map->name);
-+ textprintf_ex(bmp, data[THE_FONT].dat, 1, ty+=10, 1, -1, "Win by:");
-+ textprintf_ex(bmp, data[THE_FONT].dat, 1, ty+=10, 1, -1, " 1) reach exit (%s)", (map->win_conditions & MAP_WIN_EXIT ? "X" : " "));
-+ textprintf_ex(bmp, data[THE_FONT].dat, 1, ty+=10, 1, -1, " 2) kill boss (%s)", (map->win_conditions & MAP_WIN_KILL_GUARDIAN ? "X" : " "));
-+ textprintf_ex(bmp, data[THE_FONT].dat, 1, ty+=10, 1, -1, " 3) kill all (%s)", (map->win_conditions & MAP_WIN_KILL_ALL ? "X" : " "));
-+ textprintf_ex(bmp, data[THE_FONT].dat, 1, ty+=10, 1, -1, "4) Boss level: (%s)", (map->boss_level ? "X" : " "));
-+ textprintf_ex(bmp, data[THE_FONT].dat, 1, ty+=10, 1, -1, "5) Name: %s", map->name);
-
-- textprintf(bmp, data[THE_FONT].dat, 1, 110, 1, "F1: back to editor");
-+ textprintf_ex(bmp, data[THE_FONT].dat, 1, 110, 1, -1, "F1: back to editor");
- }
-
- if (edit_mode != EDIT_MODE_STATS) {
---- a/src/hisc.c
-+++ b/src/hisc.c
-@@ -153,9 +153,9 @@
-
- // draws a single hisc post
- void draw_hisc_post(Thisc *table, BITMAP *bmp, FONT *fnt, int x, int y, int color, int show_level) {
-- textprintf(bmp, fnt, x, y, color, "%s", table->name);
-- if (show_level) textprintf_right(bmp, fnt, x+80, y, color, "%2d", table->level);
-- textprintf_right(bmp, fnt, x+140, y, color, "%d", table->score);
-+ textprintf_ex(bmp, fnt, x, y, color, -1, "%s", table->name);
-+ if (show_level) textprintf_right_ex(bmp, fnt, x+80, y, color, -1, "%2d", table->level);
-+ textprintf_right_ex(bmp, fnt, x+140, y, color, -1, "%d", table->score);
- }
-
- // draws the entire table
---- a/src/main.c
-+++ b/src/main.c
-@@ -496,15 +496,15 @@
-
- rectfill(bmp, 0, y, 159, y+9, 1);
- draw_sprite_h_flip(bmp, data[HERO_NORM].dat, 0, y+1);
-- textprintf(bmp, data[THE_FONT].dat, 9, y+1, 4, " :%d", player.lives);
-+ textprintf_ex(bmp, data[THE_FONT].dat, 9, y+1, 4, -1, " :%d", player.lives);
-
- for(i = 0; i < player.health; i ++)
- draw_sprite(bmp, data[HEART2].dat, 40 + 10 * i, y-3);
-
- draw_sprite(bmp, data[EGG].dat, 80, y-5);
-- textprintf(bmp, data[THE_FONT].dat, 85, y+1, 4, " :%d", player.ammo);
-+ textprintf_ex(bmp, data[THE_FONT].dat, 85, y+1, 4, -1, " :%d", player.ammo);
-
-- textprintf_right(bmp, data[THE_FONT].dat, 158, y+1, 4, "%d", player.score);
-+ textprintf_right_ex(bmp, data[THE_FONT].dat, 158, y+1, 4, -1, "%d", player.score);
- }
-
-
-@@ -626,7 +626,6 @@
-
- // various allegro things
- log2file(" initializing allegro");
-- text_mode(-1);
- garble_string(init_string, 53);
- #ifdef __unix__
- snprintf(filename, sizeof(filename), "%s/.alex4/alex4.ini",
-@@ -635,7 +634,6 @@
- #else
- set_config_file("alex4.ini");
- #endif
-- set_window_close_button(FALSE);
-
- // install timers
- log2file(" installing timers");
-@@ -701,7 +699,7 @@
-
- // show initial loading screen
- clear(swap_screen);
-- textout_centre(swap_screen, font, "loading...", 320, 200, 1);
-+ textout_centre_ex(swap_screen, font, "loading...", 320, 200, 1, -1);
- blit_to_screen(swap_screen);
-
- #ifndef __unix__
-@@ -788,8 +786,8 @@
- clear_to_color(swap_screen, 3);
-
- bmp = data[FLD_LOGO].dat;
-- draw_character(swap_screen, bmp, 80 - bmp->w / 2 + 0, 50 + 1, 1);
-- draw_character(swap_screen, bmp, 80 - bmp->w / 2, 50, 4);
-+ draw_character_ex(swap_screen, bmp, 80 - bmp->w / 2 + 0, 50 + 1, 1, -1);
-+ draw_character_ex(swap_screen, bmp, 80 - bmp->w / 2, 50, 4, -1);
-
- blit_to_screen(swap_screen);
-
-@@ -1100,11 +1098,11 @@
-
- // draws text with an outline
- void textout_outline(BITMAP *bmp, const char *txt, int x, int y) {
-- textout(bmp, data[THE_FONT].dat, txt, x+1, y, 1);
-- textout(bmp, data[THE_FONT].dat, txt, x-1, y, 1);
-- textout(bmp, data[THE_FONT].dat, txt, x, y+1, 1);
-- textout(bmp, data[THE_FONT].dat, txt, x, y-1, 1);
-- textout(bmp, data[THE_FONT].dat, txt, x, y, 4);
-+ textout_ex(bmp, data[THE_FONT].dat, txt, x+1, y, 1, -1);
-+ textout_ex(bmp, data[THE_FONT].dat, txt, x-1, y, 1, -1);
-+ textout_ex(bmp, data[THE_FONT].dat, txt, x, y+1, 1, -1);
-+ textout_ex(bmp, data[THE_FONT].dat, txt, x, y-1, 1, -1);
-+ textout_ex(bmp, data[THE_FONT].dat, txt, x, y, 4, -1);
- }
-
-
-@@ -1451,12 +1449,12 @@
-
- sprintf(buf, "%s %d %s", (level > min ? "<" : " "), level, (level < max ? ">" : " "));
- clear_bitmap(stuff);
-- textout_centre(stuff, data[THE_FONT].dat, buf, stuff->w/2 + 1, 1, 2);
-- textout_centre(stuff, data[THE_FONT].dat, buf, stuff->w/2, 0, 1);
-+ textout_centre_ex(stuff, data[THE_FONT].dat, buf, stuff->w/2 + 1, 1, 2, -1);
-+ textout_centre_ex(stuff, data[THE_FONT].dat, buf, stuff->w/2, 0, 1, -1);
- stretch_sprite(bmp, stuff, 80 - 4*stuff->w/2, 30, 4*stuff->w, 4*stuff->h);
-
-- textout_centre(bmp, data[THE_FONT].dat, "SELECT START LEVEL", 80, 90, 1);
-- textout_centre(bmp, data[THE_FONT].dat, "SELECT START LEVEL", 79, 89, 4);
-+ textout_centre_ex(bmp, data[THE_FONT].dat, "SELECT START LEVEL", 80, 90, 1, -1);
-+ textout_centre_ex(bmp, data[THE_FONT].dat, "SELECT START LEVEL", 79, 89, 4, -1);
-
- if (options.one_hundred) {
- if (game_count & 32 || game_count & 16) draw_sprite(bmp, data[SHIP100].dat, xpos, 2);
-@@ -2532,20 +2530,20 @@
-
- y = 60;
- x = 50;
-- textout(bmp, data[THE_FONT].dat, start_string, x+1, y+1, 1);
-- textout(bmp, data[THE_FONT].dat, start_string, x, y, 4);
-+ textout_ex(bmp, data[THE_FONT].dat, start_string, x+1, y+1, 1, -1);
-+ textout_ex(bmp, data[THE_FONT].dat, start_string, x, y, 4, -1);
-
- y += step;
-- textout(bmp, data[THE_FONT].dat, "HIGH SCORES", x+1, y+1, 1);
-- textout(bmp, data[THE_FONT].dat, "HIGH SCORES", x, y, 4);
-+ textout_ex(bmp, data[THE_FONT].dat, "HIGH SCORES", x+1, y+1, 1, -1);
-+ textout_ex(bmp, data[THE_FONT].dat, "HIGH SCORES", x, y, 4, -1);
-
- y += step;
-- textout(bmp, data[THE_FONT].dat, "EDITOR", x+1, y+1, 1);
-- textout(bmp, data[THE_FONT].dat, "EDITOR", x, y, 4);
-+ textout_ex(bmp, data[THE_FONT].dat, "EDITOR", x+1, y+1, 1, -1);
-+ textout_ex(bmp, data[THE_FONT].dat, "EDITOR", x, y, 4, -1);
-
- y += step;
-- textout(bmp, data[THE_FONT].dat, "QUIT", x+1, y+1, 1);
-- textout(bmp, data[THE_FONT].dat, "QUIT", x, y, 4);
-+ textout_ex(bmp, data[THE_FONT].dat, "QUIT", x+1, y+1, 1, -1);
-+ textout_ex(bmp, data[THE_FONT].dat, "QUIT", x, y, 4, -1);
-
- draw_sprite(bmp, data[POINTER].dat, x - 25 + fixtoi(3 * fcos(itofix(tick << 2))), 44 + menu_choice * step);
- }
-@@ -2597,7 +2595,7 @@
- string[i] = letters[current_letter];
- string[i + 1] = '\0';
- blit(block, bmp, 0, 0, pos_x - 1, pos_y - 1, block->w, block->h);
-- textout(bmp, f, string, pos_x, pos_y, colour);
-+ textout_ex(bmp, f, string, pos_x, pos_y, colour, -1);
- blit_to_screen(bmp);
-
- if (pad != NULL) {
---- a/src/map.c
-+++ b/src/map.c
-@@ -280,7 +280,7 @@
-
- if (sm == NULL) return;
-
-- set_clip(bmp, dx, dy, dx+w-1, dy+h-1);
-+ set_clip_rect(bmp, dx, dy, dx+w-1, dy+h-1);
-
- for(y=0;y<7;y++) {
- for(x=0;x<11;x++) {
-@@ -330,13 +330,13 @@
-
- if (edit) {
- if (sm->dat[pos].type == MAP_DEAD) {
-- textout(bmp, font, "D", dx + x*16 + ax, dy + y*16 + ay, 0);
-+ textout_ex(bmp, font, "D", dx + x*16 + ax, dy + y*16 + ay, 0, -1);
- }
- if (sm->dat[pos].type == MAP_EXIT) {
-- textout(bmp, font, "XT", dx + x*16 + ax, dy + y*16 + ay, 255);
-+ textout_ex(bmp, font, "XT", dx + x*16 + ax, dy + y*16 + ay, 255, -1);
- }
- if (sm->dat[pos].type == MAP_BRK) {
-- textout(bmp, font, "GL", dx + x*16 + ax, dy + y*16 + ay, 255);
-+ textout_ex(bmp, font, "GL", dx + x*16 + ax, dy + y*16 + ay, 255, -1);
- }
- if (sm->dat[pos].type == MAP_ENEMY1) {
- draw_sprite(bmp, sm->data[ENEMY1_01 + ((ABS(game_count) >> 3) % 4)].dat, dx + x*16 + ax, dy + y*16 + ay);
-@@ -367,7 +367,7 @@
- }
- }
-
-- set_clip(bmp, 0, 0, SCREEN_W - 1, SCREEN_H - 1);
-+ set_clip_rect(bmp, 0, 0, SCREEN_W - 1, SCREEN_H - 1);
-
- }
-
---- a/src/script.c
-+++ b/src/script.c
-@@ -89,7 +89,7 @@
-
- // draw text
- for(i = 0; i < lines; i ++) {
-- textout(bmp, d[THE_FONT].dat, rows[i], x1 + 4, y1 + 5 + i * 9, 1);
-+ textout_ex(bmp, d[THE_FONT].dat, rows[i], x1 + 4, y1 + 5 + i * 9, 1, -1);
- }
- }
-
---- a/src/scroller.c
-+++ b/src/scroller.c
-@@ -65,22 +65,22 @@
- if (sc->horizontal) {
- if (sc->offset < -sc->length) return;
- if (sc->offset > sc->width) return;
-- set_clip(bmp, x, y, x + sc->width, y + sc->height);
-- textout(bmp, sc->fnt, sc->text, x + sc->offset + 1, y + 1, 1);
-- textout(bmp, sc->fnt, sc->text, x + sc->offset, y, 3);
-- set_clip(bmp, 0, 0, bmp->w-1, bmp->h-1);
-+ set_clip_rect(bmp, x, y, x + sc->width, y + sc->height);
-+ textout_ex(bmp, sc->fnt, sc->text, x + sc->offset + 1, y + 1, 1, -1);
-+ textout_ex(bmp, sc->fnt, sc->text, x + sc->offset, y, 3, -1);
-+ set_clip_rect(bmp, 0, 0, bmp->w-1, bmp->h-1);
- }
- else {
- int i;
- if (sc->offset < -sc->rows * sc->font_height) return;
- if (sc->offset > sc->height) return;
-- set_clip(bmp, x, y, x + sc->width, y + sc->height);
-+ set_clip_rect(bmp, x, y, x + sc->width, y + sc->height);
- for(i=0;i<sc->rows;i++) {
- if (i * sc->font_height + sc->offset <= sc->height)
- if ((i+1) * sc->font_height + sc->offset >= 0)
-- textout_centre(bmp, sc->fnt, sc->lines[i], x+(sc->width>>1) , i * sc->font_height + y + sc->offset, -1);
-+ textout_centre_ex(bmp, sc->fnt, sc->lines[i], x+(sc->width>>1) , i * sc->font_height + y + sc->offset, -1, -1);
- }
-- set_clip(bmp, 0, 0, bmp->w-1, bmp->h-1);
-+ set_clip_rect(bmp, 0, 0, bmp->w-1, bmp->h-1);
- }
- }
-
---- a/src/shooter.c
-+++ b/src/shooter.c
-@@ -341,7 +341,7 @@
- if (!o->hit || o->type == SO_PLAYER_BULLET)
- draw_sprite(bmp, s_data[o->image].dat, (int)o->x, (int)o->y);
- else
-- draw_character(bmp, s_data[o->image].dat, (int)o->x, (int)o->y, 4);
-+ draw_character_ex(bmp, s_data[o->image].dat, (int)o->x, (int)o->y, 4, -1);
- }
- else {
- int c = (o->energy + 8) >> 3;
-@@ -379,8 +379,8 @@
- padding_str[i] = '0';
- padding_str[i] = '\0';
- strcat(padding_str, score_str);
-- textprintf_right(bmp, s_data[SPACE_FONT].dat, x + 160, y + 2, 3, "%s", padding_str);
-- if (s_var.score) textprintf_right(bmp, s_data[SPACE_FONT].dat, x + 160, y + 2, 4, "%s", score_str);
-+ textprintf_right_ex(bmp, s_data[SPACE_FONT].dat, x + 160, y + 2, 3, -1, "%s", padding_str);
-+ if (s_var.score) textprintf_right_ex(bmp, s_data[SPACE_FONT].dat, x + 160, y + 2, 4, -1, "%s", score_str);
- }
-
-
diff --git a/unix-port.patch b/unix-port.patch
deleted file mode 100644
index ed960b0b1f99..000000000000
--- a/unix-port.patch
+++ /dev/null
@@ -1,781 +0,0 @@
-Description: Support Unix-like operating systems.
- Based on Hans de Goede's patch for Fedora.
-Author: Hans de Goede <hdegoede@redhat.com>
- Peter de Wachter <pdewacht@gmail.com>,
- Peter Pentchev <roam@ringlet.net>
-Forwarded: yes
-Last-Update: 2011-03-09
-
---- a/src/main.c
-+++ b/src/main.c
-@@ -38,6 +38,7 @@
- #include "main.h"
- #include "edit.h"
- #include "shooter.h"
-+#include "unix.h"
-
- #include "../data/data.h"
-
-@@ -66,7 +67,6 @@
- Tscroller hscroll;
- Thisc *hisc_table;
- Thisc *hisc_table_space;
--char working_directory[1024];
-
- // the map
- Tmap *map = NULL;
-@@ -126,6 +126,7 @@
- int playing_original_game = 1;
- int init_ok = 0;
-
-+static FILE* log_fp = NULL;
-
-
- // // // // // // // // // // // // // // // // // // // // //
-@@ -154,20 +155,18 @@
- // loggs the text to the text file
- void log2file(char *format, ...) {
- va_list ptr; /* get an arg pointer */
-- FILE *fp;
-
-- fp = fopen("log.txt", "at");
-- if (fp) {
-+ if (log_fp) {
- /* initialize ptr to point to the first argument after the format string */
- va_start(ptr, format);
-
- /* Write to logfile. */
-- vfprintf(fp, format, ptr); // Write passed text.
-- fprintf(fp, "\n"); // New line..
-+ vfprintf(log_fp, format, ptr); // Write passed text.
-+ fprintf(log_fp, "\n"); // New line..
-
- va_end(ptr);
-
-- fclose(fp);
-+ fflush(log_fp);
- }
-
- }
-@@ -618,6 +617,10 @@
- BITMAP *bmp;
- int i;
- int w, h;
-+#ifdef __unix__
-+ char filename[512];
-+ char *homedir = get_homedir();
-+#endif
-
- log2file("\nInit routines:");
-
-@@ -625,7 +628,13 @@
- log2file(" initializing allegro");
- text_mode(-1);
- garble_string(init_string, 53);
-+#ifdef __unix__
-+ snprintf(filename, sizeof(filename), "%s/.alex4/alex4.ini",
-+ homedir? homedir:".");
-+ override_config_file(filename);
-+#else
- set_config_file("alex4.ini");
-+#endif
- set_window_close_button(FALSE);
-
- // install timers
-@@ -695,6 +704,7 @@
- textout_centre(swap_screen, font, "loading...", 320, 200, 1);
- blit_to_screen(swap_screen);
-
-+#ifndef __unix__
- // set switch modes and callbacks
- if (set_display_switch_mode(SWITCH_PAUSE) < 0)
- log2file(" * display switch mode failed");
-@@ -702,6 +712,7 @@
- log2file(" * display switch in failed");
- if (set_display_switch_callback(SWITCH_OUT, display_switch_out) < 0)
- log2file(" * display switch out failed");
-+#endif
-
-
- // set win title (no! really???)
-@@ -718,7 +729,7 @@
- // load data
- log2file(" loading data");
- packfile_password(init_string);
-- data = load_datafile("data/data.dat");
-+ data = load_datafile(DATADIR "data.dat");
- packfile_password(NULL);
- if (data == NULL) {
- log2file(" *** failed");
-@@ -728,7 +739,13 @@
-
- // load options
- log2file(" loading options");
-+#ifdef __unix__
-+ snprintf(filename, sizeof(filename), "%s/.alex4/alex4.sav",
-+ homedir? homedir:".");
-+ pf = pack_fopen(filename, "rp");
-+#else
- pf = pack_fopen("alex4.sav", "rp");
-+#endif
- if (pf) {
- load_options(&options, pf);
- pack_fclose(pf);
-@@ -740,7 +757,13 @@
-
- // loading highscores
- log2file(" loading hiscores");
-+#ifdef __unix__
-+ snprintf(filename, sizeof(filename), "%s/.alex4/alex4.hi",
-+ homedir? homedir:".");
-+ pf = pack_fopen(filename, "rp");
-+#else
- pf = pack_fopen("alex4.hi", "rp");
-+#endif
- if (pf) {
- load_hisc_table(hisc_table, pf);
- load_hisc_table(hisc_table_space, pf);
-@@ -776,7 +799,7 @@
- log2file(" loading original maps");
- packfile_password(init_string);
- num_levels = -1; // skip end object when counting
-- maps = load_datafile_callback("data/maps.dat", count_maps_callback);
-+ maps = load_datafile_callback(DATADIR "maps.dat", count_maps_callback);
- packfile_password(NULL);
- if (maps == NULL) {
- log2file(" *** failed");
-@@ -835,11 +858,12 @@
- // install sound
- log2file(" installing sound");
- set_volume_per_voice(0);
-- switch(get_config_int("sound", "sound_device", 0)) {
-+ switch(get_config_int("sound", "sound_device", 1)) {
- case 1:
- i = DIGI_AUTODETECT;
- log2file(" DIGI_AUTODETECT selected (%d)", i);
- break;
-+#ifdef ALLEGRO_WINDOWS
- case 2:
- i = DIGI_DIRECTX(0);
- log2file(" DIGI_DIRECTX(0) selected (%d)", i);
-@@ -848,6 +872,20 @@
- i = DIGI_DIRECTAMX(0);
- log2file(" DIGI_DIRECTAMX(0) selected (%d)", i);
- break;
-+#elif defined ALLEGRO_UNIX
-+#ifdef DIGI_OSS
-+ case 2:
-+ i = DIGI_OSS;
-+ log2file(" DIGI_OSS selected (%d)", i);
-+ break;
-+#endif
-+#ifdef DIGI_ALSA
-+ case 3:
-+ i = DIGI_ALSA;
-+ log2file(" DIGI_ALSA selected (%d)", i);
-+ break;
-+#endif
-+#endif
- default:
- i = -770405; // dummy number
- got_sound = 0;
-@@ -870,9 +908,9 @@
- if (get_config_int("sound", "use_sound_datafile", 1)) {
- log2file(" loading sound datafile");
- packfile_password(init_string);
-- sfx_data = load_datafile("data/sfx_44.dat");
-+ sfx_data = load_datafile(DATADIR "sfx_44.dat");
- if (sfx_data == NULL) {
-- sfx_data = load_datafile("data/sfx_22.dat");
-+ sfx_data = load_datafile(DATADIR "sfx_22.dat");
- log2file(" sfx_44.dat not found");
- s = 0;
- }
-@@ -971,6 +1009,10 @@
- void uninit_game() {
- int i;
- PACKFILE *pf;
-+#ifdef __unix__
-+ char filename[512];
-+ char *homedir = get_homedir();
-+#endif
-
- log2file("\nExit routines:");
-
-@@ -989,14 +1031,26 @@
- // only save if everything was inited ok!
- if (init_ok) {
- log2file(" saving options");
-+#ifdef __unix__
-+ snprintf(filename, sizeof(filename), "%s/.alex4/alex4.sav",
-+ homedir? homedir:".");
-+ pf = pack_fopen(filename, "wp");
-+#else
- pf = pack_fopen("alex4.sav", "wp");
-+#endif
- if (pf) {
- save_options(&options, pf);
- pack_fclose(pf);
- }
-
- log2file(" saving highscores");
-+#ifdef __unix__
-+ snprintf(filename, sizeof(filename), "%s/.alex4/alex4.hi",
-+ homedir? homedir:".");
-+ pf = pack_fopen(filename, "wp");
-+#else
- pf = pack_fopen("alex4.hi", "wp");
-+#endif
- if (pf) {
- save_hisc_table(hisc_table, pf);
- save_hisc_table(hisc_table_space, pf);
-@@ -1289,7 +1343,7 @@
- // poll music machine
- if (got_sound) al_poll_duh(dp);
-
-- if (mode == 1 && (keypressed() || is_fire(&ctrl) || is_jump(&ctrl) ) || my_counter > 200) {
-+ if (((mode == 1) && (keypressed() || is_fire(&ctrl) || is_jump(&ctrl))) || (my_counter > 200)) {
- mode = 2;
- }
-
-@@ -1343,7 +1397,7 @@
- if (space) {
- // get space bg
- packfile_password(init_string);
-- df = load_datafile_object("data/a45.dat", "BG1");
-+ df = load_datafile_object(DATADIR "a45.dat", "BG1");
- packfile_password(NULL);
- if (df != NULL) {
- bg = df->dat;
-@@ -2149,7 +2203,7 @@
-
- // calculates camera pos for map m considering player p
- void calculate_camera_pos(Tplayer *p, Tmap *m) {
-- static camera_type = 1;
-+ static int camera_type = 1;
-
- if (p->actor->status == AC_BALL) {
- camera_type = 2;
-@@ -2841,6 +2895,10 @@
- }
- else {
- PACKFILE *pf;
-+#ifdef __unix__
-+ char filename[512];
-+ char *homedir = get_homedir();
-+#endif
- log2file(" level complete");
- if (got_sound) stop_music();
- if (level < MAX_LEVELS && playing_original_game) {
-@@ -2875,7 +2933,14 @@
-
- // save options
- log2file(" saving options");
-+#ifdef __unix__
-+ snprintf(filename, sizeof(filename),
-+ "%s/.alex4/alex4.sav",
-+ homedir? homedir:".");
-+ pf = pack_fopen(filename, "wp");
-+#else
- pf = pack_fopen("alex4.sav", "wp");
-+#endif
- if (pf) {
- save_options(&options, pf);
- pack_fclose(pf);
-@@ -2969,24 +3034,36 @@
-
- // main
- int main(int argc, char **argv) {
-- FILE *fp;
- int i;
- char full_path[1024];
-+#ifndef __unix__
-+ char working_directory[1024];
-+#else
-+ char *homedir = get_homedir();
-+#endif
-
- // init allegro
- allegro_init();
-
-+#ifdef __unix__
-+ // start logfile
-+ snprintf(full_path, sizeof(full_path), "%s/.alex4",
-+ homedir? homedir:".");
-+ check_and_create_dir(full_path);
-+ snprintf(full_path, sizeof(full_path), "%s/.alex4/log.txt",
-+ homedir? homedir:".");
-+ log_fp = fopen(full_path, "wt");
-+#else
- // get working directory
- get_executable_name(full_path, 1024);
- replace_filename(working_directory, full_path, "", 1024);
- chdir(working_directory);
-
--
- // start logfile
-- fp = fopen("log.txt", "wt");
-- if (fp) {
-- fprintf(fp, "Alex 4 (%s) - log file\n-------------------\n", GAME_VERSION_STR);
-- fclose(fp);
-+ log_fp = fopen("log.txt", "wt");
-+#endif
-+ if (log_fp) {
-+ fprintf(log_fp, "Alex 4 (%s) - log file\n-------------------\n", GAME_VERSION_STR);
- }
-
- // log program arguments
-@@ -2994,7 +3071,9 @@
- for(i = 0; i < argc; i ++) {
- log2file(" %s", argv[i]);
- }
-+#ifndef __unix__
- log2file("Working directory is:\n %s", working_directory);
-+#endif
-
- // test wether to play real game
- // or custom levels
-@@ -3022,6 +3101,8 @@
- uninit_game();
- allegro_exit();
- log2file("\nDone...\n");
-+ if (log_fp)
-+ fclose(log_fp);
-
- return 0;
- } END_OF_MAIN();
---- a/src/player.h
-+++ b/src/player.h
-@@ -60,4 +60,4 @@
- void wound_player(Tplayer *p);
- void kill_player(Tplayer *p);
-
--#endif
-\ No newline at end of file
-+#endif
---- a/src/map.h
-+++ b/src/map.h
-@@ -111,4 +111,4 @@
-
-
-
--#endif
-\ No newline at end of file
-+#endif
---- /dev/null
-+++ b/src/unix.c
-@@ -0,0 +1,87 @@
-+#ifdef __unix__
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <pwd.h>
-+#include <errno.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#if defined(__DECC) && defined(VMS)
-+#include <unixlib.h>
-+static char *vms_to_unix_buffer = NULL;
-+static int convert_vms_to_unix(char *vms_dir_name)
-+{
-+ vms_to_unix_buffer = vms_dir_name;
-+}
-+#endif
-+
-+char *get_homedir(void)
-+{
-+ struct passwd *pw;
-+ char *home;
-+
-+ home = getenv("HOME");
-+ if (home)
-+ return home;
-+
-+ if (!(pw = getpwuid(getuid())))
-+ {
-+ fprintf(stderr, "Who are you? Not found in passwd database!!\n");
-+ return NULL;
-+ }
-+
-+#if defined(__DECC) && defined(VMS)
-+ /* Convert The OpenVMS Formatted "$HOME" Directory Path Into Unix
-+ Format. */
-+ decc$from_vms(pw->pw_dir, convert_vms_to_unix, 1);
-+ return vms_to_unix_buffer;
-+#else
-+ return pw->pw_dir;
-+#endif
-+}
-+//-----------------------------------------------------------------------------
-+int check_and_create_dir(const char *name)
-+{
-+ struct stat stat_buffer;
-+
-+ if (stat(name, &stat_buffer))
-+ {
-+ /* error check if it doesn't exist or something else is wrong */
-+ if (errno == ENOENT)
-+ {
-+ /* doesn't exist letts create it ;) */
-+#ifdef BSD43
-+ if (mkdir(name, 0775))
-+#else
-+ if (mkdir(name, S_IRWXU|S_IRWXG|S_IROTH|S_IXOTH))
-+#endif
-+ {
-+ fprintf(stderr, "Error creating dir %s", name);
-+ perror(" ");
-+ return -1;
-+ }
-+ }
-+ else
-+ {
-+ /* something else went wrong yell about it */
-+ fprintf(stderr, "Error opening %s", name);
-+ perror(" ");
-+ return -1;
-+ }
-+ }
-+ else
-+ {
-+ /* file exists check it's a dir otherwise yell about it */
-+#ifdef BSD43
-+ if (!(S_IFDIR & stat_buffer.st_mode))
-+#else
-+ if (!S_ISDIR(stat_buffer.st_mode))
-+#endif
-+ {
-+ fprintf(stderr,"Error %s exists but isn't a dir\n", name);
-+ return -1;
-+ }
-+ }
-+ return 0;
-+}
-+#endif
---- /dev/null
-+++ b/src/Makefile
-@@ -0,0 +1,24 @@
-+PREFIX = /usr/local
-+DATADIR = $(PREFIX)/share/$(TARGET)
-+CFLAGS ?= -g -Wall -Wno-deprecated-declarations -O2
-+LIBS = -laldmb -ldumb `allegro-config --libs`
-+DEFINES = -DDATADIR=\"$(DATADIR)/\"
-+OBJS = actor.o edit.o map.o player.o shooter.o unix.o \
-+ bullet.o hisc.o options.o script.o timer.o \
-+ control.o main.o particle.o scroller.o token.o
-+TARGET = alex4
-+
-+$(TARGET): $(OBJS)
-+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
-+
-+%.o: %.c
-+ $(CC) $(CPPFLAGS) $(CFLAGS) $(DEFINES) -o $@ -c $<
-+
-+install: $(TARGET)
-+ mkdir -p $(PREFIX)/bin
-+ mkdir -p $(DATADIR)
-+ install -p -m 755 $(TARGET) $(PREFIX)/bin
-+ install -p -m 644 ../data/*.dat $(DATADIR)
-+
-+clean:
-+ rm -f $(OBJS) $(TARGET) *~
---- a/src/token.h
-+++ b/src/token.h
-@@ -41,4 +41,4 @@
- Ttoken *tokenize(char *str);
-
-
--#endif
-\ No newline at end of file
-+#endif
---- a/src/shooter.c
-+++ b/src/shooter.c
-@@ -1372,7 +1372,7 @@
- // load data
- log2file(" loading shooter data");
- packfile_password(get_init_string());
-- s_data = load_datafile("data/a45.dat");
-+ s_data = load_datafile(DATADIR "a45.dat");
- if (!s_data) {
- log2file(" *** failed");
- return -1;
---- a/src/particle.h
-+++ b/src/particle.h
-@@ -54,4 +54,4 @@
- void update_particle_with_map(Tparticle *p, Tmap *m);
- void create_burst(Tparticle *ps, int x, int y, int spread, int num, int life, int bmp);
-
--#endif
-\ No newline at end of file
-+#endif
---- /dev/null
-+++ b/src/unix.h
-@@ -0,0 +1,6 @@
-+#ifdef __unix__
-+
-+char *get_homedir();
-+int check_and_create_dir(const char *name);
-+
-+#endif
---- a/src/scroller.h
-+++ b/src/scroller.h
-@@ -51,4 +51,4 @@
-
-
-
--#endif
-\ No newline at end of file
-+#endif
---- a/src/map.c
-+++ b/src/map.c
-@@ -24,6 +24,7 @@
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-+#include <endian.h>
- #include "allegro.h"
- #include "map.h"
- #include "timer.h"
-@@ -64,7 +65,41 @@
-
- return m;
- }
--
-+
-+static void mem_to_int(int *dest, unsigned char *mem)
-+{
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+ memcpy(dest, mem, 4);
-+#else
-+ *dest = mem[0] | (((int)mem[1]) << 8) | (((int)mem[2]) << 16) |
-+ (((int)mem[3]) << 24);
-+#endif
-+}
-+
-+static void fread_int(int *dest, FILE *fp)
-+{
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+ fread(dest, 4, 1, fp);
-+#else
-+ unsigned char buf[4];
-+ fread(buf, 1, 4, fp);
-+ mem_to_int(dest, buf);
-+#endif
-+}
-+
-+static void fwrite_int(const int *src, FILE *fp)
-+{
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+ fwrite(src, 4, 1, fp);
-+#else
-+ unsigned char buf[4];
-+ buf[0] = *src;
-+ buf[1] = *src >> 8;
-+ buf[2] = *src >> 16;
-+ buf[3] = *src >> 24;
-+ fwrite(buf, 1, 4, fp);
-+#endif
-+}
-
- // loads one splendind map from disk
- Tmap *load_map(char *fname) {
-@@ -93,7 +128,19 @@
- }
-
- // read datastruct
-- fread(m, sizeof(Tmap), 1, fp);
-+ // a mapfile contain a raw dump of the Tmap struct made on an i386
-+ // the code below reads these struct dumps in an arch neutral manner
-+ // Note this dumps contains pointers, these are not used because these
-+ // ofcourse point to some no longer valid address.
-+ fread(m, 64, 1, fp); // first 64 bytes data
-+ fread_int(&(m->width), fp);
-+ fread_int(&(m->height), fp);
-+ fread(header, 4, 1, fp); // skip the first pointer
-+ fread_int(&(m->offset_x), fp);
-+ fread_int(&(m->offset_y), fp);
-+ fread(header, 4, 1, fp); // skip the second pointer
-+ fread_int(&(m->start_x), fp);
-+ fread_int(&(m->start_y), fp);
-
- // read map data
- m->dat = malloc(m->width * m->height * sizeof(Tmappos));
-@@ -116,8 +163,8 @@
- // loads one splendind map from memory
- Tmap *load_map_from_memory(void *mem) {
- Tmap *m;
-- char header[6];
-- char *c = (char *)mem;
-+ unsigned char header[6];
-+ unsigned char *c = (unsigned char *)mem;
-
-
- // does the header match?
-@@ -137,9 +184,19 @@
- }
-
- // read datastruct
-- // fread(m, sizeof(Tmap), 1, fp);
-- memcpy(m, c, sizeof(Tmap));
-- c += sizeof(Tmap);
-+ // a mapfile contain a raw dump of the Tmap struct made on an i386
-+ // the code below reads these struct dumps in an arch neutral manner
-+ // Note this dumps contains pointers, these are not used because these
-+ // ofcourse point to some no longer valid address.
-+ memcpy(m, c, 64); c += 64; // first 64 bytes data
-+ mem_to_int(&(m->width), c); c += 4;
-+ mem_to_int(&(m->height), c); c += 4;
-+ c += 4; // skip the first pointer
-+ mem_to_int(&(m->offset_x), c); c += 4;
-+ mem_to_int(&(m->offset_y), c); c += 4;
-+ c += 4; // skip the second pointer
-+ mem_to_int(&(m->start_x), c); c+= 4;
-+ mem_to_int(&(m->start_y), c); c+= 4;
-
- // read map data
- m->dat = malloc(m->width * m->height * sizeof(Tmappos));
-@@ -174,7 +231,18 @@
- fwrite(header, 6, 1, fp);
-
- // write datastruct
-- fwrite(m, sizeof(Tmap), 1, fp);
-+ // a mapfile should contain a raw dump of the Tmap struct as made on an
-+ // i386 the code below writes a struct dump as an i386 in an arch
-+ // neutral manner
-+ fwrite(m, 64, 1, fp); // first 64 bytes data
-+ fwrite_int(&(m->width), fp);
-+ fwrite_int(&(m->height), fp);
-+ fwrite(header, 4, 1, fp); // skip the first pointer
-+ fwrite_int(&(m->offset_x), fp);
-+ fwrite_int(&(m->offset_y), fp);
-+ fwrite(header, 4, 1, fp); // skip the second pointer
-+ fwrite_int(&(m->start_x), fp);
-+ fwrite_int(&(m->start_y), fp);
-
- // write map data
- fwrite(m->dat, sizeof(Tmappos), m->width * m->height, fp);
-@@ -409,7 +477,7 @@
- }
-
- if (mask == 5 && oy > 31 - ox) return mask; // 45 degree slope /
-- if (mask == 6 && oy > ox) return mask; // 45 degree slope \
-+ if (mask == 6 && oy > ox) return mask; // 45 degree slope \ .
-
- // the not so simple ones
- if (mask == 3 && oy > 31 - ox / 2) return mask; // 22 degree slope / (low)
---- a/src/shooter.h
-+++ b/src/shooter.h
-@@ -83,8 +83,8 @@
- int difficulty;
-
- // player related
-- long unsigned int score;
-- long unsigned int show_score;
-+ unsigned int score;
-+ unsigned int show_score;
- int lives;
- int power_gauge;
- int power_level;
-@@ -118,4 +118,4 @@
- int start_shooter(Tcontrol *c, int with_sound);
-
-
--#endif
-\ No newline at end of file
-+#endif
---- a/src/timer.h
-+++ b/src/timer.h
-@@ -37,4 +37,4 @@
- void fps_counter(void);
- void cycle_counter(void);
-
--#endif
-\ No newline at end of file
-+#endif
---- a/src/main.h
-+++ b/src/main.h
-@@ -93,5 +93,8 @@
- #define check_bb_collision(x1,y1,w1,h1,x2,y2,w2,h2) (!( ((x1)>=(x2)+(w2)) || ((x2)>=(x1)+(w1)) || \
- ((y1)>=(y2)+(h2)) || ((y2)>=(y1)+(h1)) ))
-
-+#ifndef DATADIR
-+#define DATADIR "data/"
-+#endif
-
--#endif
-\ No newline at end of file
-+#endif
---- a/src/script.h
-+++ b/src/script.h
-@@ -51,4 +51,4 @@
-
-
-
--#endif
-\ No newline at end of file
-+#endif
---- a/src/edit.h
-+++ b/src/edit.h
-@@ -37,4 +37,4 @@
- void draw_edit_mode(BITMAP *bmp, Tmap *map, int mx, int my);
- void update_edit_mode(Tmap *map, BITMAP *bmp, int mx, int my, int mb);
-
--#endif
-\ No newline at end of file
-+#endif
---- a/src/token.c
-+++ b/src/token.c
-@@ -67,7 +67,7 @@
-
- // tokenizes the string str
- Ttoken *tokenize(char *str) {
-- Ttoken *tok_list, *tok_tmp;
-+ Ttoken *tok_list, *tok_tmp = NULL;
- char word[256];
- int a, b, c;
- int i = 0;
---- a/src/hisc.h
-+++ b/src/hisc.h
-@@ -48,4 +48,4 @@
- void draw_hisc_post(Thisc *table, BITMAP *bmp, FONT *fnt, int x, int y, int color, int show_level);
- void draw_hisc_table(Thisc *table, BITMAP *bmp, FONT *fnt, int x, int y, int color, int show_level);
-
--#endif
-\ No newline at end of file
-+#endif
---- a/src/options.h
-+++ b/src/options.h
-@@ -43,4 +43,4 @@
- void load_options(Toptions *o, PACKFILE *fp);
- void reset_options(Toptions *o);
-
--#endif
-\ No newline at end of file
-+#endif
---- a/src/timer.c
-+++ b/src/timer.c
-@@ -60,4 +60,4 @@
- game_count ++;
-
- return TRUE;
--}
-\ No newline at end of file
-+}
---- a/src/actor.h
-+++ b/src/actor.h
-@@ -91,4 +91,4 @@
- void kill_actor(Tactor *a);
-
-
--#endif
-\ No newline at end of file
-+#endif
---- a/src/bullet.h
-+++ b/src/bullet.h
-@@ -52,4 +52,4 @@
- void update_bullet(Tbullet *b);
- void update_bullet_with_map(Tbullet *b, Tmap *m);
-
--#endif
-\ No newline at end of file
-+#endif