Skip to content

Commit

Permalink
- Add DOS support for find_resource_file
Browse files Browse the repository at this point in the history
- CWSDPMI stub added to executable now (DOS)
- shfolder.dll run for Windows < 5.0 at setup time
- Setup script no longer has hard-coded paths
  • Loading branch information
orudge committed May 14, 2008
1 parent d7efd37 commit 34ce1c8
Show file tree
Hide file tree
Showing 8 changed files with 120 additions and 30 deletions.
13 changes: 10 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ CFLAGS += -DENABLE_CDA
LDFLAGS += -lcda -laldmb -ldumb -lalleg
RES =
EXE = blocks4.exe
EXE_NOEXT= blocks4
endif


Expand Down Expand Up @@ -78,16 +79,22 @@ WINDRES = windres

RM = rm -f

OBJECTS = bomb.o editor.o fps.o init.o main.o motif.o ply.o trans.o \
box.o fall.o laser.o menu.o music.o sound.o undo.o \
door.o gfx.o levels.o mon.o part.o title.o vars.o win.o $(RES)
OBJECTS = bomb.o dos.o editor.o fps.o init.o main.o motif.o ply.o \
box.o fall.o laser.o menu.o music.o sound.o undo.o trans.o \
door.o gfx.o levels.o mon.o part.o title.o vars.o win.o $(RES)

all: $(EXE)
@echo "Ultimate Blocks has been built."

$(EXE): $(OBJECTS)
$(CC) -o $@ $(OBJECTS) $(LDFLAGS)

ifeq ($(PLATFORM),djgpp )
exe2coff $(EXE)
copy /b cwsdstub.exe+$(EXE_NOEXT) $(EXE)
$(RM) $(EXE_NOEXT)
endif

%.o : %.c
$(CC) $(CFLAGS) -c $< -o $@

Expand Down
2 changes: 1 addition & 1 deletion blocks3.h
Original file line number Diff line number Diff line change
Expand Up @@ -671,4 +671,4 @@ const char *find_resource_file (int dir, const char *file);
const char *_config_file;
const char *_graphics_dir;
const char *_music_dir;
const char *_map_dir;
const char *_map_dir;
2 changes: 2 additions & 0 deletions blocks4.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ CD = 255
B2Music = 1
InitialMusic = deadlock.xm

[Game]
Speed = 1
Binary file added cwsdstub.exe
Binary file not shown.
70 changes: 70 additions & 0 deletions dos.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
/*****************************************************/
/* Ultimate Blocks */
/* Copyright (c) An Ly 2000, Owen Rudge 2001, 2008 */
/*****************************************************/
#if defined(DJGPP)

#include <allegro.h>
#include "blocks3.h"

/*! \brief Return the name of 'significant' directories.
*
* \param dir Enumerated constant for directory type \sa DATA_DIR et al.
* \param file File name below that directory.
* \returns the combined path
*/
const char *find_resource_file (int dir, const char *file)
{
static char ans[MAX_PATH];

switch (dir)
{
case APP_DIR:
if (file == NULL)
strcpy(ans, ".");
else
strcpy(ans, file);

break;

case GRAPHICS_DIR:
if (file == NULL)
strcpy(ans, "graphics");
else
sprintf(ans, "graphics/%s", file);

break;

case MUSIC_DIR:
if (file == NULL)
strcpy(ans, "music");
else
sprintf(ans, "music/%s", file);

break;

case MAP_DIR:
if (file == NULL)
strcpy(ans, "maps");
else
sprintf(ans, "maps/%s", file);

break;

case SAVE_DIR:
case SETTINGS_DIR:
if (file == NULL)
strcpy(ans, ".");
else
strcpy(ans, file);

break;

default:
return NULL;
}

return fix_filename_slashes (ans);
}

#endif
61 changes: 36 additions & 25 deletions setup/setup.iss
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,13 @@ OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
ArchitecturesInstallIn64BitMode=x64
VersionInfoCompany=Owen Rudge
VersionInfoCopyright=Copyright © An Ly 1999-2001, Owen Rudge 2001, 2008. All Rights Reserved.
VersionInfoDescription=Ultimate Blocks Setup
VersionInfoProductName=Ultimate Blocks
VersionInfoProductVersion=4.0
VersionInfoTextVersion=4.0
VersionInfoVersion=4.0.0.0

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Expand All @@ -32,40 +39,44 @@ Name: "{app}\maps"
Name: "{app}\music"

[Files]
Source: "E:\DriveF\Games\Blocks4\blocks4.exe"; DestDir: "{app}"; Flags: ignoreversion 32bit; Check: not Is64BitInstallMode
Source: "E:\DriveF\Games\Blocks4\x64\Release\blocks4.exe"; DestDir: "{app}"; Flags: ignoreversion 64bit; Check: Is64BitInstallMode
Source: "E:\DriveF\Games\Blocks4\fonts.dat"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\music.dat"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\sfx.dat"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\title256.bmp"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\music\shopping.xm"; DestDir: "{app}\music"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\music\vivamine.mod"; DestDir: "{app}\music"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\music\celesfnt.s3m"; DestDir: "{app}\music"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\music\exp4a.xm"; DestDir: "{app}\music"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\music\jungle.mod"; DestDir: "{app}\music"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\music\lounge.xm"; DestDir: "{app}\music"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\music\memories.xm"; DestDir: "{app}\music"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\maps\blocks3.map"; DestDir: "{app}\maps"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\maps\2blocks.map"; DestDir: "{app}\maps"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\maps\b1.map"; DestDir: "{app}\maps"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\maps\b2.map"; DestDir: "{app}\maps"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\graphics\sunny.bmp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\graphics\castle.bgp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\graphics\castle.bmp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\graphics\rocky.bgp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\graphics\rocky.bmp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\graphics\snowy.bgp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\graphics\snowy.bmp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "E:\DriveF\Games\Blocks4\graphics\sunny.bgp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "..\blocks4.exe"; DestDir: "{app}"; Flags: ignoreversion 32bit; Check: not Is64BitInstallMode
Source: "..\x64\Release\blocks4.exe"; DestDir: "{app}"; Flags: ignoreversion 64bit; Check: Is64BitInstallMode
Source: "..\fonts.dat"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\music.dat"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\sfx.dat"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\title256.bmp"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\music\shopping.xm"; DestDir: "{app}\music"; Flags: ignoreversion
Source: "..\music\vivamine.mod"; DestDir: "{app}\music"; Flags: ignoreversion
Source: "..\music\celesfnt.s3m"; DestDir: "{app}\music"; Flags: ignoreversion
Source: "..\music\exp4a.xm"; DestDir: "{app}\music"; Flags: ignoreversion
Source: "..\music\jungle.mod"; DestDir: "{app}\music"; Flags: ignoreversion
Source: "..\music\lounge.xm"; DestDir: "{app}\music"; Flags: ignoreversion
Source: "..\music\memories.xm"; DestDir: "{app}\music"; Flags: ignoreversion
Source: "..\maps\blocks3.map"; DestDir: "{app}\maps"; Flags: ignoreversion
Source: "..\maps\2blocks.map"; DestDir: "{app}\maps"; Flags: ignoreversion
Source: "..\maps\b1.map"; DestDir: "{app}\maps"; Flags: ignoreversion
Source: "..\maps\b2.map"; DestDir: "{app}\maps"; Flags: ignoreversion
Source: "..\graphics\sunny.bmp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "..\graphics\castle.bgp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "..\graphics\castle.bmp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "..\graphics\rocky.bgp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "..\graphics\rocky.bmp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "..\graphics\snowy.bgp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "..\graphics\snowy.bmp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "..\graphics\sunny.bgp"; DestDir: "{app}\graphics"; Flags: ignoreversion
Source: "shfolder.exe"; DestDir: "{tmp}"; Flags: ignoreversion; OnlyBelowVersion: 5.0,5.0

; NOTE: Don't use "Flags: ignoreversion" on any shared system files


[Icons]
Name: "{group}\Ultimate Blocks"; Filename: "{app}\blocks4.exe"; WorkingDir: "{app}"
Name: "{group}\{cm:ProgramOnTheWeb,Ultimate Blocks}"; Filename: "http://www.ultimateblocks.com/"
Name: "{commondesktop}\Ultimate Blocks"; Filename: "{app}\blocks4.exe"; Tasks: desktopicon

[Run]
Filename: "{app}\blocks4.exe"; Description: "{cm:LaunchProgram,Ultimate Blocks}"; Flags: nowait postinstall skipifsilent
Filename: "{tmp}\shfolder.exe"; Parameters: "/q:a"; OnlyBelowVersion: 5.0,5.0

[CustomMessages]
ProgramOnTheWeb=%1 Online
Expand Down
Binary file added setup/shfolder.exe
Binary file not shown.
2 changes: 1 addition & 1 deletion trans.c
Original file line number Diff line number Diff line change
Expand Up @@ -155,4 +155,4 @@ void my_fade_out(int speed)

get_palette(temp);
my_fade_from_range(temp, black_palette, speed, 0, PAL_SIZE-1);
}
}

0 comments on commit 34ce1c8

Please sign in to comment.