Skip to content

Commit

Permalink
Merge pull request #170 from walkero-gr/v2.1-release
Browse files Browse the repository at this point in the history
V2.1 release
  • Loading branch information
walkero-gr authored Jun 4, 2022
2 parents 81d6448 + 4ae1dc9 commit fa4e8bd
Show file tree
Hide file tree
Showing 7 changed files with 132 additions and 72 deletions.
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
## iGame 2.1 - [2022-06-04]
### Changed
- Did some fixes on libraries checks during application start based on the selected tooltypes
- Some minor fixes
- Update icons' positions to not overlap each other
- Added NOSIDEPANEL to iGame tooltypes that was missing

... plus all the changes that were released in previous beta versions (2.1b1 up to 2.1b3), which you can see below

## iGame 2.1b3 - [2021-12-04]
### Added
- Added a check if the screenshot image is supported by the installed datatypes. If not, it is skipped. This fixes situations where the Info datatype is not installed and no image is shown instead of the default.
Expand Down
4 changes: 2 additions & 2 deletions aminet.readme
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Short: Frontend for WHDLoad
Uploader: [email protected] (George Sokianos)
Author: [email protected] (Emmanuel Vasilakis)
Type: util/misc
Version: 2.0
Version: 2.1
Architecture: m68k-amigaos >= 2.04; ppc-amigaos; ppc-morphos
Distribution: Aminet
Replaces: util/misc/iGame.lha
Expand Down Expand Up @@ -62,5 +62,5 @@ https://github.com/MrZammler/iGame/issues

Changelog
-------------
A lot changed since the previous stable v1.5. Please read the enclosed
A lot changed since the previous stable v2.0. Please read the enclosed
CHANGELOG.md file for all the changes.
72 changes: 72 additions & 0 deletions os4depot.readme
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: iGame
description: Frontend for WHDLoad
version: 2.1
author: Emmanuel Vasilakis and contributors
submitter: George Sokianos
email: [email protected]
url: https://github.com/MrZammler/iGame
category: util/misc
replaces: util/misc/iGame.lha
requirements: MUI, render.library
license: Freeware
minosversion: 4.0
distribute: yes
passphrase: OS4DEPOT_PASSPHRASE
hend:
iGame is a frontend application for your WHDLoad games and demos collection.
It runs on AmigaOS 2.04 and above, AmigaOS 4 and MorphOS.

Features

* Multiple WHDLoad slaves repositories on hard disk partitions
* On demand scanning in repositories for installed WHDLoad slaves (games,
demos etc.)
* Use games' tooltypes on run
* Shows game screenshot (screenshot window can be altered through
tooltypes/settings, uses datatypes to load foreign formats)
* Categorization of the games and filtering
* Manual addition of non-WHDLoad games, demos etc.
* Simple statistics
* Find-as-you-type search filter

iGame can "discover" your games on pre-defined repositories and create a small
database. You can then categorize each game according to its genre, provide a
small screenshot image to be displayed when the game is selected and quickly
find the one you're looking for, using the filter gadget.

But iGame can support more than just WHDLoad games or demos. You can add and
launch any type of executable, though it mostly makes sense if it's a game ;-)

iGame can be found on many AmigaOS distributions like AmiKit XE and ApolloOS.

iGame was initially developed on an Amiga 3000 with a CSMKII 68060 with
128MB RAM, using the Cubic IDE (gcc). Nowadays, we use mostly vbcc as a cross
compiler on a Linux system.

iGame is open source and free software, licensed under the GPLv3, and you can
find it at the following websites.

https://github.com/MrZammler/iGame
http://winterland.no-ip.org/igame/index.html

Requirements:
* Kickstart 2.04 or higher
* Workbench 2.1 or higher
* MUI 3.8 or higher
* guigfx.library
* render.library
* guigfx.mcc
* Texteditor.mcc

The project is open source and you can find the code at:
https://github.com/MrZammler/iGame

If you have any requests or you would like to report any problems you found,
you can do that at:
https://github.com/MrZammler/iGame/issues


Changelog
-------------
A lot changed since the previous stable v2.0. Please read the enclosed
CHANGELOG.md file for all the changes.
4 changes: 2 additions & 2 deletions required_files/iGame.guide
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
@DATABASE iGame.guide
@$VER: iGame.guide 2.0 (16.10.2020)
@$VER: iGame.guide 2.1 (04.06.2022)
@INDEX "Index"
@wordwrap

@NODE "Main" "iGame documentation"
@{jcenter}
iGame
=============================================
(c) 2005-2020 Emmanuel Vasilakis
(c) 2005-2022 Emmanuel Vasilakis
@{jleft}
@{lindent 3}
@{" Introduction " LINK "INTR" 0} - About iGame
Expand Down
Binary file modified required_files/igame_drawer_3.0.info
Binary file not shown.
2 changes: 2 additions & 0 deletions src/fsfuncs.c
Original file line number Diff line number Diff line change
Expand Up @@ -353,6 +353,8 @@ void read_tool_types(void)

if (FindToolType(disk_obj->do_ToolTypes, (STRPTR)TOOLTYPE_NOSIDEPANEL))
current_settings->hide_side_panel = 1;

FreeDiskObject(disk_obj);
}
}

Expand Down
113 changes: 45 additions & 68 deletions src/iGameMain.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,6 @@
#include <proto/locale.h>
#endif

/* ANSI C */
#include <stdio.h>
#include <stdlib.h>

#include "iGameExtern.h"
#include "fsfuncs.h"
#include "funcs.h"
Expand Down Expand Up @@ -94,8 +90,7 @@ igame_settings* iGameSettings = NULL;
static int initLibraries(void);
static void cleanupLibraries(void);


static int clean_exit(STRPTR msg)
static void cleanUp(void)
{
if (app)
app_stop();
Expand All @@ -106,7 +101,10 @@ static int clean_exit(STRPTR msg)

if(app)
DisposeApp(app);
}

static int clean_exit(STRPTR msg)
{
if (msg)
{
PutStr(msg);
Expand All @@ -116,42 +114,28 @@ static int clean_exit(STRPTR msg)
return RETURN_OK;
}

BOOL init_app(int argc, char **argv)
int main(int argc, char **argv)
{
executable_name = get_executable_name(argc, argv);
iGameSettings = load_settings(DEFAULT_SETTINGS_FILE);

if (initLibraries() == RETURN_OK)
if (initLibraries() != RETURN_OK)
{
app = CreateApp();
if (app)
{
app_start();
}
else
{
clean_exit("Can't initialize application\n");
return FALSE;
}
cleanUp();
return RETURN_ERROR;
}
else

app = CreateApp();
if (app)
{
return FALSE;
app_start();
}

return TRUE;
}

int main(int argc, char **argv)
{
BOOL initStatus = init_app(argc, argv);
const int unit = 1;

if (!initStatus)
else
{
clean_exit("Can't create application\n");
cleanUp();
return RETURN_ERROR;
}

const int unit = 1;
ULONG old = 0;
ULONG signals;
BOOL running = TRUE;
Expand Down Expand Up @@ -222,11 +206,10 @@ int main(int argc, char **argv)
if (running && signals) Wait(signals);
}

clean_exit(NULL);
return 0;
cleanUp();
return RETURN_OK;
}


static BOOL initLocale(void)
{
if ((LocaleBase = OpenLibrary("locale.library", 37)))
Expand Down Expand Up @@ -340,21 +323,28 @@ static int initLibraries(void)
return RETURN_ERROR;
}

if (!iGameSettings->no_guigfx && !iGameSettings->hide_screenshots)
// Load settings here, after we load the icon.library
iGameSettings = load_settings(DEFAULT_SETTINGS_FILE);

if (!iGameSettings->hide_screenshots && !iGameSettings->hide_side_panel)
{
if (!(RenderLibBase = OpenLibrary("render.library", 30)))
{
return clean_exit("Can't open render.library v30 or greater\n");
}

if (!(GuiGfxBase = OpenLibrary("guigfx.library", 17)))
if (!iGameSettings->no_guigfx)
{
return clean_exit("Can't open guigfx.library v17 or greater\n");
}

if (!(GuiGfxMCC = OpenLibrary("mui/Guigfx.mcc", 19)))
{
return clean_exit("Can't open Guigfx.mcc v19 or greater\n");
if (!(GuiGfxBase = OpenLibrary("guigfx.library", 17)))
{
return clean_exit("Can't open guigfx.library v17 or greater\n");
}

if (!(GuiGfxMCC = OpenLibrary("mui/Guigfx.mcc", 19)))
{
return clean_exit("Can't open Guigfx.mcc v19 or greater\n");
}
}
}

Expand All @@ -373,35 +363,22 @@ static void cleanupLibraries(void)
if(IWorkbench) DropInterface((struct Interface *) IWorkbench);
#endif

if (TextEditorMCC)
CloseLibrary(TextEditorMCC);
if (LowLevelBase)
CloseLibrary(LowLevelBase);
if (RenderLibBase)
CloseLibrary(RenderLibBase);
if (GfxBase)
CloseLibrary(GfxBase);
if (GuiGfxBase)
CloseLibrary(GuiGfxBase);
if (GuiGfxMCC)
CloseLibrary(GuiGfxMCC);
if (DataTypesBase)
CloseLibrary(DataTypesBase);
if (IconBase)
CloseLibrary(IconBase);
if (IntuitionBase)
CloseLibrary((struct Library *)IntuitionBase);
if (DataTypesBase)
CloseLibrary(DataTypesBase);
if (WorkbenchBase)
CloseLibrary(WorkbenchBase);
if (TextEditorMCC) CloseLibrary(TextEditorMCC);
if (LowLevelBase) CloseLibrary(LowLevelBase);
if (RenderLibBase) CloseLibrary(RenderLibBase);
if (GfxBase) CloseLibrary(GfxBase);
if (GuiGfxBase) CloseLibrary(GuiGfxBase);
if (GuiGfxMCC) CloseLibrary(GuiGfxMCC);
if (DataTypesBase) CloseLibrary(DataTypesBase);
if (IconBase) CloseLibrary(IconBase);
if (IntuitionBase) CloseLibrary((struct Library *)IntuitionBase);
if (DataTypesBase) CloseLibrary(DataTypesBase);
if (WorkbenchBase) CloseLibrary(WorkbenchBase);

cleanupLocale();

#if defined(__amigaos4__)
if (IMUIMaster)
DropInterface((struct Interface *)IMUIMaster);
if (IMUIMaster) DropInterface((struct Interface *)IMUIMaster);
#endif
if (MUIMasterBase)
CloseLibrary(MUIMasterBase);
if (MUIMasterBase) CloseLibrary(MUIMasterBase);
}

0 comments on commit fa4e8bd

Please sign in to comment.