/*

	main.cpp (POKER start program AmigaOS)

	V1.00 - 141096	Kimmo Teräväinen
	-----   ------  -------------------------------------
        V0.10   031196  General AmigaOS start module
        V0.11   110297  Intuition & Gfx -> V39

*/

#include <inline++/exec.h>              // exec-kirjaston funktiot
#include <workbench/startup.h>

int __nocommandline=1;

struct Library *IntuitionBase   = 0;
struct Library *GfxBase         = 0;
struct Library *DOSBase         = 0;
struct Library *UtilityBase     = 0;

struct Library *GadToolsBase    = 0;
struct Library *IFFParseBase    = 0;
struct Library *AslBase         = 0;
struct Library *IconBase        = 0;

struct Library *__IntuitionBase = 0;
struct Library *__GfxBase       = 0;
struct Library *__DOSBase       = 0;
struct Library *__UtilityBase   = 0;


extern int My_main(void);
main(void)
{
  int virhe=20;

// Open ROM-kirjastot (if not open exit without note)
//
  if(!(IntuitionBase=OpenLibrary((UBYTE *)"intuition.library",39L))) goto cleanup;
  if(!(GfxBase=OpenLibrary((UBYTE *)"graphics.library",39L))) goto cleanup;
  if(!(DOSBase=OpenLibrary((UBYTE *)"dos.library",0L))) goto cleanup;
  if(!(UtilityBase=OpenLibrary((UBYTE *)"utility.library",0L))) goto cleanup;

  __IntuitionBase=IntuitionBase;
  __GfxBase=GfxBase;
  __DOSBase=DOSBase;
  __UtilityBase=UtilityBase;

// Open other libraries (My_Main will check are these open)
//
  IFFParseBase=OpenLibrary((UBYTE *)"iffparse.library",0L);
  GadToolsBase=OpenLibrary((UBYTE *)"gadtools.library",0L);
  AslBase=OpenLibrary((UBYTE *)"asl.library",0L);
  IconBase=OpenLibrary((UBYTE *)"icon.library",33L);

  virhe=My_main();  // pääohjelma

cleanup:
// Closing libraries
//
  if (IconBase)      CloseLibrary(IconBase);
  if (AslBase)       CloseLibrary(AslBase);
  if (GadToolsBase)  CloseLibrary(GadToolsBase);
  if (IFFParseBase)  CloseLibrary(IFFParseBase);
  if (UtilityBase)   CloseLibrary(UtilityBase);
  if (DOSBase)       CloseLibrary(DOSBase);
  if (GfxBase)       CloseLibrary(GfxBase);
  if (IntuitionBase) CloseLibrary(IntuitionBase);
  return virhe;
}
