mirror of
git://projects.qi-hardware.com/openwrt-packages.git
synced 2024-11-16 18:54:04 +02:00
new package: alex4: Alex the Allegator v4: Game-Boy style jump&n&run game
This commit is contained in:
parent
51707e8501
commit
51cbdda599
91
alex4/Makefile
Normal file
91
alex4/Makefile
Normal file
@ -0,0 +1,91 @@
|
||||
#
|
||||
# Copyright (C) 2011 David Kuehling <dvdkhlng TA gmx TOD de>
|
||||
#
|
||||
# OpenWRT package for Alex the Allegotor v4 -- a game using liballegro
|
||||
#
|
||||
# License GPLv2 or later. NO WARRANTY.
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=alex4
|
||||
PKG_VERSION:=4.0
|
||||
PKG_RELEASE:=1
|
||||
PKG_SOURCE:=alex4src_data.zip
|
||||
PKG_SOURCE_URL:=@SF/allegator/Alex4/source%20and%20data/
|
||||
PKG_MD5SUM:=c81b8e3813300a0cfbe828bcdff60fda
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/alex4src
|
||||
|
||||
|
||||
PKG_BUILD_DEPENDS := libdumb
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/alex4/Default
|
||||
SECTION:=games
|
||||
CATEGORY:=Games
|
||||
URL:=http://alex.sf.net
|
||||
endef
|
||||
|
||||
define Package/alex4/Default/description
|
||||
Alex the Allegotor is a series of games. Alex v4 is a jump&n run game.
|
||||
endef
|
||||
|
||||
define Package/alex4
|
||||
$(call Package/alex4/Default)
|
||||
TITLE += (the game)
|
||||
DEPENDS:=+liballegro +alex4-data
|
||||
endef
|
||||
|
||||
define Package/alex4/description
|
||||
$(call Package/alex4/Default/description)
|
||||
This package contains the executable files
|
||||
endef
|
||||
|
||||
|
||||
define Package/alex4-data
|
||||
$(call Package/alex4/Default)
|
||||
TITLE += (data)
|
||||
DEPENDS:=+alex4
|
||||
endef
|
||||
|
||||
define Package/alex4-data/description
|
||||
$(call Package/alex4/Default/description)
|
||||
This package contains the data files for Alex v4.
|
||||
endef
|
||||
|
||||
#TARGET_LDFLAGS += -Wl,-rpath-link -Wl,$(STAGING_DIR)/usr/lib
|
||||
#TARGET_CPPFLAGS +=
|
||||
|
||||
TARGET_LDFLAGS += -L$(STAGING_DIR)/usr/lib -laldmb -ldumb -lalleg
|
||||
|
||||
|
||||
|
||||
define Build/Configure
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
cd $(PKG_BUILD_DIR)/src && \
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) *.c $(TARGET_LDFLAGS) -o alex4
|
||||
endef
|
||||
|
||||
define Package/alex4/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(INSTALL_DIR) $(1)/etc
|
||||
$(CP) $(PKG_BUILD_DIR)/src/alex4 $(1)/usr/bin/
|
||||
$(CP) ./files/alex4.ini $(1)/etc/
|
||||
endef
|
||||
|
||||
|
||||
define Package/alex4-data/install
|
||||
$(INSTALL_DIR) $(1)/usr/share/alex4
|
||||
$(CP) $(PKG_BUILD_DIR)/data/*.dat $(1)/usr/share/alex4
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,alex4))
|
||||
$(eval $(call BuildPackage,alex4-data))
|
||||
|
||||
|
||||
# The following comments configure the Emacs editor. Just ignore them.
|
||||
# Local Variables:
|
||||
# compile-command: "make -C ~/h/src/qi/openwrt-xburst package/alex4/compile -j2 V=99"
|
||||
# End:
|
92
alex4/files/alex4.ini
Normal file
92
alex4/files/alex4.ini
Normal file
@ -0,0 +1,92 @@
|
||||
##############################################################
|
||||
#
|
||||
# Configuration file for Alex 4 (v1.1)
|
||||
#
|
||||
##############################################################
|
||||
#
|
||||
# If you lose control of the contents of this file
|
||||
# and wants to restore to the defaults, you will have
|
||||
# to reinstall the game. Conclusion: Handle with care!
|
||||
#
|
||||
##############################################################
|
||||
|
||||
[graphics]
|
||||
# controls the startup resolution
|
||||
# Setting lower resolutions than 160x120 might result in
|
||||
# weird undocumented side affects in the rendering.
|
||||
|
||||
# start in full screen or not (1 = fullscreen, 0 = windowed)
|
||||
fullscreen = 1
|
||||
|
||||
# fullscreen width and height (used if fullscreen = 1)
|
||||
f_width = 320
|
||||
f_height = 240
|
||||
|
||||
# window width and height (used if fullscreen = 0)
|
||||
w_width = 320
|
||||
w_height = 240
|
||||
|
||||
# turns vertical sync on or off (1 = on, 0 = off)
|
||||
vsync = 0
|
||||
|
||||
|
||||
[sound]
|
||||
# these options controls the sound and music
|
||||
|
||||
# controls what sound and mixing device to use
|
||||
# 0 = no sound whatsoever
|
||||
# 1 = autodetect sound device
|
||||
# 2 = use DirectSound device with direct mixing
|
||||
# 3 = use DirectSound device with Allegro mixing
|
||||
sound_device = 1
|
||||
|
||||
# controls the volume of the samples (0-255 (0 = no sound))
|
||||
sample_volume = 50
|
||||
|
||||
# controls the volume of the music (0-255 (0 = no music))
|
||||
music_volume = 120
|
||||
|
||||
# use the sound datafile or not (0 = no, 1 = yes)
|
||||
use_sound_datafile = 1
|
||||
|
||||
# if use_sound_datafile is set to 0
|
||||
# this should point to where the
|
||||
# sounds can be loaded from
|
||||
sfx_path = sfx/22KHz
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##############################################################
|
||||
# DUMB (mod control)
|
||||
##############################################################
|
||||
# You can edit this section to control the playback quality of
|
||||
# the music in Alex 4.
|
||||
|
||||
# dumb_resampling_quality can range from 0 (fastest) to 4 (best).
|
||||
|
||||
# dumb_it_max_to_mix is the maximum number of samples DUMB will render at a
|
||||
# time.
|
||||
|
||||
# Increase buffer_size to combat stuttering.
|
||||
|
||||
# The module will be rendered at a sampling frequency specified by sound_freq.
|
||||
# This variable is also used by Allegro for initialising the sound hardware.
|
||||
|
||||
# You can ignore the quality variable. Allegro uses it when relaying the audio
|
||||
# stream to the sound card. 2 is the maximum, and is only comparable in quality
|
||||
# to dumb_resampling_quality = 1. Only a masochist would reduce it.
|
||||
|
||||
[dumb]
|
||||
dumb_resampling_quality = 4
|
||||
dumb_it_max_to_mix = 256
|
||||
buffer_size = 4096
|
||||
sound_freq = 44100
|
||||
|
||||
quality = 2
|
||||
|
63
alex4/patches/010-alex4-unix.patch
Normal file
63
alex4/patches/010-alex4-unix.patch
Normal file
@ -0,0 +1,63 @@
|
||||
This is from alex4src_data.zip directory 'extras'
|
||||
Index: alex4src/src/main.c
|
||||
===================================================================
|
||||
--- alex4src.orig/src/main.c 2003-07-26 12:53:52.000000000 +0200
|
||||
+++ alex4src/src/main.c 2011-06-06 22:51:43.000000000 +0200
|
||||
@@ -840,6 +840,7 @@
|
||||
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 +849,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;
|
||||
Index: alex4src/src/main.h
|
||||
===================================================================
|
||||
--- alex4src.orig/src/main.h 2003-07-26 12:53:52.000000000 +0200
|
||||
+++ alex4src/src/main.h 2011-06-06 22:51:43.000000000 +0200
|
||||
@@ -90,8 +90,7 @@
|
||||
|
||||
|
||||
// a little bounding box quickie
|
||||
-#define check_bb_collision(x1,y1,w1,h1,x2,y2,w2,h2) (!( ((x1)>=(x2)+(w2)) || ((x2)>=(x1)+(w1)) || \
|
||||
- ((y1)>=(y2)+(h2)) || ((y2)>=(y1)+(h1)) ))
|
||||
+#define check_bb_collision(x1,y1,w1,h1,x2,y2,w2,h2) (!( ((x1)>=(x2)+(w2)) || ((x2)>=(x1)+(w1)) || ((y1)>=(y2)+(h2)) || ((y2)>=(y1)+(h1)) ))
|
||||
|
||||
|
||||
#endif
|
||||
\ No newline at end of file
|
||||
Index: alex4src/src/shooter.c
|
||||
===================================================================
|
||||
--- alex4src.orig/src/shooter.c 2003-07-26 12:53:52.000000000 +0200
|
||||
+++ alex4src/src/shooter.c 2011-06-06 22:51:43.000000000 +0200
|
||||
@@ -239,8 +239,7 @@
|
||||
|
||||
// PIXEL PERFECT COLLISION ROUTINES COURTESY OF IVAN BALDO'S PPCOL
|
||||
|
||||
-#define pp_check_bb_collision_general(x1,y1,w1,h1,x2,y2,w2,h2) (!( ((x1)>=(x2)+(w2)) || ((x2)>=(x1)+(w1)) || \
|
||||
- ((y1)>=(y2)+(h2)) || ((y2)>=(y1)+(h1)) ))
|
||||
+#define pp_check_bb_collision_general(x1,y1,w1,h1,x2,y2,w2,h2) (!( ((x1)>=(x2)+(w2)) || ((x2)>=(x1)+(w1)) || ((y1)>=(y2)+(h2)) || ((y2)>=(y1)+(h1)) ))
|
||||
#define pp_check_bb_collision(mask1,mask2,x1,y1,x2,y2) pp_check_bb_collision_general(x1,y1,mask1->w,mask1->h,x2,y2,mask2->w,mask2->h)
|
||||
|
||||
int s_check_pp_collision(BITMAP *spr1, BITMAP *spr2, int x1, int y1, int x2, int y2) {
|
50
alex4/patches/020-gfx-mode.patch
Normal file
50
alex4/patches/020-gfx-mode.patch
Normal file
@ -0,0 +1,50 @@
|
||||
Index: alex4src/src/main.c
|
||||
===================================================================
|
||||
--- alex4src.orig/src/main.c 2011-06-07 11:43:11.000000000 +0200
|
||||
+++ alex4src/src/main.c 2011-06-07 11:59:26.000000000 +0200
|
||||
@@ -62,6 +62,7 @@
|
||||
DATAFILE *maps = NULL;
|
||||
DATAFILE *sfx_data = NULL;
|
||||
BITMAP *swap_screen;
|
||||
+BITMAP *colorconv_screen = 0;
|
||||
PALETTE org_pal;
|
||||
Tscroller hscroll;
|
||||
Thisc *hisc_table;
|
||||
@@ -484,9 +485,20 @@
|
||||
|
||||
// blits anything to screen
|
||||
void blit_to_screen(BITMAP *bmp) {
|
||||
+ if (!colorconv_screen ||
|
||||
+ colorconv_screen->w != bmp->w || colorconv_screen->h != bmp->h)
|
||||
+ {
|
||||
+ if (colorconv_screen)
|
||||
+ destroy_bitmap(colorconv_screen);
|
||||
+
|
||||
+ colorconv_screen = create_bitmap_ex(bitmap_color_depth(screen),
|
||||
+ bmp->w, bmp->h);
|
||||
+ }
|
||||
+ blit (bmp, colorconv_screen, 0, 0, 0, 0, bmp->w, bmp->h);
|
||||
+
|
||||
acquire_screen();
|
||||
if (options.use_vsync) vsync();
|
||||
- stretch_blit(bmp, screen, 0, 0, bmp->w, bmp->h, 0, 0, SCREEN_W, SCREEN_H);
|
||||
+ stretch_blit(colorconv_screen, screen, 0, 0, bmp->w, bmp->h, 0, 0, SCREEN_W, SCREEN_H);
|
||||
release_screen();
|
||||
}
|
||||
|
||||
@@ -674,6 +686,7 @@
|
||||
|
||||
log2file(" entering gfx mode set in alex4.ini (%dx%d %s)", w, h, (get_config_int("graphics", "fullscreen", 0) ? "full" : "win"));
|
||||
|
||||
+ set_color_depth(32);
|
||||
if (set_gfx_mode(
|
||||
(get_config_int("graphics", "fullscreen", 0) ? GFX_AUTODETECT_FULLSCREEN : GFX_AUTODETECT_WINDOWED),
|
||||
w, h, 0, 0)) {
|
||||
@@ -689,6 +702,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+ set_color_depth(8);
|
||||
|
||||
// show initial loading screen
|
||||
clear(swap_screen);
|
105
alex4/patches/030-files-n-paths.patch
Normal file
105
alex4/patches/030-files-n-paths.patch
Normal file
@ -0,0 +1,105 @@
|
||||
Index: alex4src/src/main.c
|
||||
===================================================================
|
||||
--- alex4src.orig/src/main.c 2011-06-07 12:24:01.000000000 +0200
|
||||
+++ alex4src/src/main.c 2011-06-07 13:15:30.000000000 +0200
|
||||
@@ -157,7 +157,7 @@
|
||||
va_list ptr; /* get an arg pointer */
|
||||
FILE *fp;
|
||||
|
||||
- fp = fopen("log.txt", "at");
|
||||
+ fp = fopen("/var/log/alex4.log", "at");
|
||||
if (fp) {
|
||||
/* initialize ptr to point to the first argument after the format string */
|
||||
va_start(ptr, format);
|
||||
@@ -637,7 +637,7 @@
|
||||
log2file(" initializing allegro");
|
||||
text_mode(-1);
|
||||
garble_string(init_string, 53);
|
||||
- set_config_file("alex4.ini");
|
||||
+ set_config_file("/etc/alex4.ini");
|
||||
set_window_close_button(FALSE);
|
||||
|
||||
// install timers
|
||||
@@ -732,7 +732,7 @@
|
||||
// load data
|
||||
log2file(" loading data");
|
||||
packfile_password(init_string);
|
||||
- data = load_datafile("data/data.dat");
|
||||
+ data = load_datafile("/usr/share/alex4/data.dat");
|
||||
packfile_password(NULL);
|
||||
if (data == NULL) {
|
||||
log2file(" *** failed");
|
||||
@@ -742,7 +742,7 @@
|
||||
|
||||
// load options
|
||||
log2file(" loading options");
|
||||
- pf = pack_fopen("alex4.sav", "rp");
|
||||
+ pf = pack_fopen("/var/lib/alex4.sav", "rp");
|
||||
if (pf) {
|
||||
load_options(&options, pf);
|
||||
pack_fclose(pf);
|
||||
@@ -754,7 +754,7 @@
|
||||
|
||||
// loading highscores
|
||||
log2file(" loading hiscores");
|
||||
- pf = pack_fopen("alex4.hi", "rp");
|
||||
+ pf = pack_fopen("/var/lib/alex4.hi", "rp");
|
||||
if (pf) {
|
||||
load_hisc_table(hisc_table, pf);
|
||||
load_hisc_table(hisc_table_space, pf);
|
||||
@@ -790,7 +790,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("/usr/share/alex4/maps.dat", count_maps_callback);
|
||||
packfile_password(NULL);
|
||||
if (maps == NULL) {
|
||||
log2file(" *** failed");
|
||||
@@ -899,9 +899,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("/usr/share/alex4/sfx_44.dat");
|
||||
if (sfx_data == NULL) {
|
||||
- sfx_data = load_datafile("data/sfx_22.dat");
|
||||
+ sfx_data = load_datafile("/usr/share/alex4/sfx_22.dat");
|
||||
log2file(" sfx_44.dat not found");
|
||||
s = 0;
|
||||
}
|
||||
@@ -1018,14 +1018,14 @@
|
||||
// only save if everything was inited ok!
|
||||
if (init_ok) {
|
||||
log2file(" saving options");
|
||||
- pf = pack_fopen("alex4.sav", "wp");
|
||||
+ pf = pack_fopen("/var/lib/alex4.sav", "wp");
|
||||
if (pf) {
|
||||
save_options(&options, pf);
|
||||
pack_fclose(pf);
|
||||
}
|
||||
|
||||
log2file(" saving highscores");
|
||||
- pf = pack_fopen("alex4.hi", "wp");
|
||||
+ pf = pack_fopen("/var/lib/alex4.hi", "wp");
|
||||
if (pf) {
|
||||
save_hisc_table(hisc_table, pf);
|
||||
save_hisc_table(hisc_table_space, pf);
|
||||
@@ -1372,7 +1372,7 @@
|
||||
if (space) {
|
||||
// get space bg
|
||||
packfile_password(init_string);
|
||||
- df = load_datafile_object("data/a45.dat", "BG1");
|
||||
+ df = load_datafile_object("/usr/share/alex4/a45.dat", "BG1");
|
||||
packfile_password(NULL);
|
||||
if (df != NULL) {
|
||||
bg = df->dat;
|
||||
@@ -3008,7 +3008,7 @@
|
||||
// get working directory
|
||||
get_executable_name(full_path, 1024);
|
||||
replace_filename(working_directory, full_path, "", 1024);
|
||||
- chdir(working_directory);
|
||||
+ /* chdir(working_directory); */
|
||||
|
||||
|
||||
// start logfile
|
Loading…
Reference in New Issue
Block a user