/*
 *  Source generated with GadToolsBox V1.3
 *  which is (c) Copyright 1991,92 Jaba Development
 */

#include "version.h"

#ifndef INC
#define ASL_V38_NAME_ONLY
#include <exec/types.h>
#include <intuition/intuition.h>
#include <intuition/classes.h>
#include <intuition/classusr.h>
#include <intuition/imageclass.h>
#include <intuition/gadgetclass.h>
#include <libraries/gadtools.h>
#include <graphics/displayinfo.h>
#include <graphics/gfxbase.h>
#include <clib/exec_protos.h>
#include <clib/intuition_protos.h>
#include <clib/gadtools_protos.h>
#include <clib/graphics_protos.h>
#include <string.h>
#endif

#define FIRSTCOL     148
#define FIRSTWIDTH   60
#define SECONDCOL    (FIRSTCOL + FIRSTWIDTH + 200)
#define SECONDWIDTH  60
#define THIRDCOL     (SECONDCOL + SECONDWIDTH + 150)
#define THIRDWIDTH   77

static struct Screen        *Scr = NULL;
static APTR                  VisualInfo = NULL;
static struct Window        *SNII1Wnd = NULL;
static struct Window        *ListIntReqWnd = NULL;
static struct Window        *ListReqWnd = NULL;
static struct Window        *StrReqWnd = NULL;
static struct Gadget        *SNII1GList = NULL;
static struct Gadget        *ListReqGList = NULL;
static struct Gadget        *ListIntReqGList = NULL;
static struct Gadget        *StrReqGList = NULL;
static struct Menu          *SNII1Menus = NULL;
static struct Gadget        *SNII1Gadgets[55];
static struct Gadget        *ListReqGadgets[2];
static struct Gadget        *ListIntReqGadgets[2];
static struct Gadget        *StrReqGadgets[1];
static UWORD                 SNII1Left = 0;
static UWORD                 SNII1Top = 0;
static UWORD                 SNII1Width = 724;
static UWORD                 SNII1Height = 473;
static UWORD                 ListReqLeft = 146;
static UWORD                 ListReqTop = 101;
static UWORD                 ListReqWidth = 516;
static UWORD                 ListReqHeight = 170;
static UWORD                 ListIntReqLeft = 146;
static UWORD                 ListIntReqTop = 101;
static UWORD                 ListIntReqWidth = 516;
static UWORD                 ListIntReqHeight = 189;
static UWORD                 StrReqLeft = 163;
static UWORD                 StrReqTop = 86;
static UWORD                 StrReqWidth = 277;
static UWORD                 StrReqHeight = 54;
static UBYTE                *SNII1Wdt = (UBYTE *)"SuperNova II Help";
static UBYTE                *ListReqWdt = (UBYTE *)"List Request";
static UBYTE                *ListIntReqWdt = (UBYTE *)"List & Integer Request";
static UBYTE                *StrReqWdt = (UBYTE *)"String Request";

static UBYTE         *DESNUMCYCLE0Labels[] = {
    (UBYTE *)"1",
    (UBYTE *)"2",
    (UBYTE *)"3",
    (UBYTE *)"4",
    (UBYTE *)"5",
    NULL };

static struct TextAttr topaz8 = {
    ( STRPTR )"topaz.font", 8, 0x00, 0x01 };

static struct IntuiText  SNII1IText[] = {
    1, 0, JAM1,47, 118, &topaz8, (UBYTE *)"Bewaffnung", &SNII1IText[1],
    1, 0, JAM1,48, 65, &topaz8, (UBYTE *)"Komponenten", &SNII1IText[2],
    1, 0, JAM1,199, 65, &topaz8, (UBYTE *)"Typ", &SNII1IText[3],
    1, 0, JAM1,462, 65, &topaz8, (UBYTE *)"Anz.", &SNII1IText[4],
    1, 0, JAM1,520, 65, &topaz8, (UBYTE *)"Tonnage", &SNII1IText[5],
    1, 0, JAM1,600, 65, &topaz8, (UBYTE *)"IEP", &SNII1IText[6],
    1, 0, JAM1,669, 65, &topaz8, (UBYTE *)"MCr", NULL };

static struct NewMenu SNII1NewMenu[] = {
    NM_TITLE, (UBYTE *)"Project", NULL, 0, 0, NULL,
    NM_ITEM, (UBYTE *)"Load", (UBYTE *)"l", 0, 0, NULL,
    NM_ITEM, (UBYTE *)"Save", (UBYTE *)"s", 0, 0, NULL,
    NM_ITEM, (UBYTE *)"Save As ASCII", (UBYTE *)"a", 0, 0, NULL,
    NM_ITEM, (UBYTE *)NM_BARLABEL, NULL, 0, NULL, NULL,
    NM_ITEM, (UBYTE *)"Quit", (UBYTE *)"q", 0, 0, NULL,
    NM_TITLE, (UBYTE *)"Utility", NULL, 0, 0, NULL,
    NM_ITEM, (UBYTE *)"Copy", (UBYTE *)"c", 0, 0, NULL,
    NM_ITEM, (UBYTE *)"Paste", (UBYTE *)"p", 0, 0, NULL,
    NM_ITEM, (UBYTE *)"Clear", (UBYTE *)"r", 0, 0, NULL,
    NM_END, NULL, NULL, 0, NULL, NULL };

static UWORD             DriPens[] = {
    ~0 };

long SetupScreen( void )
{
  BOOL res;
  struct ScreenModeRequester *smrequest;

  smrequest=AllocAslRequestTags(ASL_ScreenModeRequest, 
                                ASL_Hail, "Choose a Screenmode ...",
                                ASLSM_InitialDisplayID, NTSC_MONITOR_ID|HIRESLACE_KEY, 
                                ASLSM_MinDepth, 1L,
                                ASLSM_MaxDepth, 2L,
                                ASLSM_DoDepth, TRUE,
                                ASLSM_DoOverscanType, TRUE,
                                ASLSM_PropertyMask, DIPF_IS_DUALPF|DIPF_IS_HAM|DIPF_IS_EXTRAHALFBRITE, 
                                TAG_DONE);
  if (!smrequest) { fprintf(stderr, "Cannot allocate requester"); _abort(); }
  
  if (WBenchToFront())
  if (AslRequestTags(smrequest, TAG_DONE)==FALSE) 
  {
     if (smrequest) FreeAslRequest(smrequest);                                          
    _abort();
  }
  else
    if ( NOT( Scr = OpenScreenTags( NULL, SA_Left,          0,
                                          SA_Top,           0,
                                          SA_DisplayID,     smrequest->sm_DisplayID,
                                          SA_AutoScroll,    TRUE,
                                          SA_Depth,         smrequest->sm_DisplayDepth,
                                          SA_Overscan,      smrequest->sm_OverscanType,
                                          SA_Width,         724,  
                                          SA_Height,        482, 
                                          SA_Font,          &topaz8,
                                          SA_Type,          CUSTOMSCREEN,
                                          SA_Pens,          &DriPens[0],
                                          SA_Title,         "SuperNova II Schiffdesign Version " VERSION " Compiled on " __DATE__ " " __TIME__ "\0",
                                          TAG_DONE )))
    {
        if (smrequest) FreeAslRequest(smrequest);                                          
        return( 1L );
    }
    if (smrequest) FreeAslRequest(smrequest);                                          

    if ( NOT( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
        return( 2L );

    return( NULL );
}

void CloseDownScreen( void )
{
    if ( VisualInfo ) {
        FreeVisualInfo( VisualInfo );
        VisualInfo = NULL;
    }

    if ( Scr        ) {
        CloseScreen( Scr );
        Scr = NULL;
    }
}

void SNII1Render( void )
{
    UWORD        offx, offy;

    offx = SNII1Wnd->BorderLeft;
    offy = SNII1Wnd->BorderTop;

    PrintIText( SNII1Wnd->RPort, SNII1IText, offx, offy );

    DrawBevelBox( SNII1Wnd->RPort, offx + 0, offy + 436, 724, 36, GT_VisualInfo, VisualInfo, TAG_DONE );
    DrawBevelBox( SNII1Wnd->RPort, offx + 0, offy + 279, 724, 157, GT_VisualInfo, VisualInfo, TAG_DONE );
    DrawBevelBox( SNII1Wnd->RPort, offx + 0, offy + 3, 724, 276, GT_VisualInfo, VisualInfo, TAG_DONE );
}

long OpenSNII1Window( void )
{
    struct NewGadget     ng;
    struct Gadget       *g;
    UWORD               offx, offy;

    offx = Scr->WBorLeft;
    offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;

    if ( NOT( g = CreateContext( &SNII1GList )))
        return( 1L );

    ng.ng_LeftEdge        =    offx + 17;
    ng.ng_TopEdge         =    offy + 11;
    ng.ng_Width           =    23;
    ng.ng_Height          =    12;
    ng.ng_GadgetText      =    NULL;
    ng.ng_TextAttr        =    &topaz8;
    ng.ng_GadgetID        =    GD_CLASS;
    ng.ng_Flags           =    0;
    ng.ng_VisualInfo      =    VisualInfo;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 0 ] = g;

    ng.ng_TopEdge         =    offy + 79;
    ng.ng_GadgetID        =    GD_JUMP;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 1 ] = g;

    ng.ng_TopEdge         =    offy + 24;
    ng.ng_GadgetID        =    GD_DESNUM;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 2 ] = g;

    ng.ng_TopEdge         =    offy + 37;
    ng.ng_GadgetID        =    GD_DESNAME;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 3 ] = g;

    ng.ng_TopEdge         =    offy + 66;
    ng.ng_GadgetID        =    GD_HULL;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 4 ] = g;

    ng.ng_TopEdge         =    offy + 92;
    ng.ng_GadgetID        =    GD_NORMAL;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 5 ] = g;

    ng.ng_LeftEdge        =    offx + 204;
    ng.ng_TopEdge         =    offy + 11;
    ng.ng_Width           =    260;
    ng.ng_GadgetText      =    (UBYTE *)"Schiffsklasse     :";
    ng.ng_GadgetID        =    GD_CLASSOUT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 6 ] = g;

    ng.ng_TopEdge         =    offy + 37;
    ng.ng_Width           =    135;
    ng.ng_GadgetText      =    (UBYTE *)"Designname        :";
    ng.ng_GadgetID        =    GD_DESNAMEOUT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 7 ] = g;

    ng.ng_LeftEdge        =    offx + 195;
    ng.ng_TopEdge         =    offy + 66;
    ng.ng_Width           =    250;
    ng.ng_GadgetText      =    (UBYTE *)"Hülle            :";
    ng.ng_GadgetID        =    GD_HUELLOUT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 8 ] = g;

    ng.ng_TopEdge         =    offy + 79;
    ng.ng_GadgetText      =    (UBYTE *)"Sprungtriebwerke :";
    ng.ng_GadgetID        =    GD_SPRUNGOUT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 9 ] = g;

    ng.ng_TopEdge         =    offy + 92;
    ng.ng_GadgetText      =    (UBYTE *)"Rückstoßtriebw.  :";
    ng.ng_GadgetID        =    GD_RUECKOUT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 10 ] = g;

    ng.ng_TopEdge         =    offy + 119;
    ng.ng_GadgetText      =    (UBYTE *)" Primäre         :";
    ng.ng_GadgetID        =    GD_PRIWPOUT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 11 ] = g;

    ng.ng_TopEdge         =    offy + 132;
    ng.ng_GadgetText      =    (UBYTE *)" Sekundäre       :";
    ng.ng_GadgetID        =    GD_SECWPOUT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 12 ] = g;

    ng.ng_TopEdge         =    offy + 145;
    ng.ng_GadgetText      =    (UBYTE *)" Tertiäre        :";
    ng.ng_GadgetID        =    GD_TERWPOUT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 13 ] = g;

    ng.ng_TopEdge         =    offy + 158;
    ng.ng_GadgetText      =    (UBYTE *)"Schilde          :";
    ng.ng_GadgetID        =    GD_SGDOUT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 14 ] = g;

    ng.ng_TopEdge         =    offy + 171;
    ng.ng_GadgetText      =    (UBYTE *)"Computer         :";
    ng.ng_GadgetID        =    GD_COMPOUT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 15 ] = g;

    ng.ng_TopEdge         =    offy + 184;
    ng.ng_GadgetText      =    (UBYTE *)"Sensoren         :";
    ng.ng_GadgetID        =    GD_SENSOUT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 16 ] = g;

    ng.ng_TopEdge         =    offy + 197;
    ng.ng_GadgetText      =    (UBYTE *)"Unterkunft       :";
    ng.ng_GadgetID        =    GD_UNOUT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 17 ] = g;

    ng.ng_TopEdge         =    offy + 210;
    ng.ng_GadgetText      =    (UBYTE *)"Frachtraum       :";
    ng.ng_GadgetID        =    GD_FROUT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 18 ] = g;

    ng.ng_TopEdge         =    offy + 236;
    ng.ng_GadgetText      =    (UBYTE *)"Schiffslabor     :";
    ng.ng_GadgetID        =    GD_LABOUT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 19 ] = g;

    ng.ng_TopEdge         =    offy + 223;
    ng.ng_GadgetText      =    (UBYTE *)"Special          :";
    ng.ng_GadgetID        =    GD_REPOUT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 20 ] = g;

    ng.ng_LeftEdge        =    offx + 17;
    ng.ng_TopEdge         =    offy + 119;
    ng.ng_Width           =    23;
    ng.ng_GadgetText      =    NULL;
    ng.ng_GadgetID        =    GD_PRIWP;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 21 ] = g;

    ng.ng_TopEdge         =    offy + 132;
    ng.ng_GadgetID        =    GD_SEKWP;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 22 ] = g;

    ng.ng_TopEdge         =    offy + 145;
    ng.ng_GadgetID        =    GD_TERWP;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 23 ] = g;

    ng.ng_TopEdge         =    offy + 158;
    ng.ng_GadgetID        =    GD_SG;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 24 ] = g;

    ng.ng_TopEdge         =    offy + 171;
    ng.ng_GadgetID        =    GD_COMP;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 25 ] = g;

    ng.ng_TopEdge         =    offy + 184;
    ng.ng_GadgetID        =    GD_SENS;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 26 ] = g;

    ng.ng_TopEdge         =    offy + 197;
    ng.ng_GadgetID        =    GD_UNTER;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 27 ] = g;

    ng.ng_TopEdge         =    offy + 210;
    ng.ng_GadgetID        =    GD_FRACHT;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 28 ] = g;

    ng.ng_TopEdge         =    offy + 223;
    ng.ng_GadgetID        =    GD_REP;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 29 ] = g;

    ng.ng_TopEdge         =    offy + 236;
    ng.ng_GadgetID        =    GD_LAB;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    SNII1Gadgets[ 30 ] = g;

    ng.ng_LeftEdge        =    offx + 458;
    ng.ng_TopEdge         =    offy + 66;
    ng.ng_Width           =    236;
    ng.ng_GadgetID        =    GD_HULLANZ;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 31 ] = g;

    ng.ng_TopEdge         =    offy + 79;
    ng.ng_GadgetID        =    GD_JUMPANZ;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 32 ] = g;

    ng.ng_TopEdge         =    offy + 92;
    ng.ng_GadgetID        =    GD_NORMALANZ;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 33 ] = g;

    ng.ng_TopEdge         =    offy + 236;
    ng.ng_GadgetID        =    GD_LABANZ;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 34 ] = g;

    ng.ng_TopEdge         =    offy + 119;
    ng.ng_GadgetID        =    GD_PRIWPANZ;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 35 ] = g;

    ng.ng_TopEdge         =    offy + 132;
    ng.ng_GadgetID        =    GD_SEKWPANZ;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 36 ] = g;

    ng.ng_TopEdge         =    offy + 145;
    ng.ng_GadgetID        =    GD_TERWPANZ;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 37 ] = g;

    ng.ng_TopEdge         =    offy + 158;
    ng.ng_GadgetID        =    GD_SGANZ;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 38 ] = g;

    ng.ng_TopEdge         =    offy + 171;
    ng.ng_GadgetID        =    GD_COMPANZ;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 39 ] = g;

    ng.ng_TopEdge         =    offy + 184;
    ng.ng_GadgetID        =    GD_SENSANZ;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 40 ] = g;

    ng.ng_TopEdge         =    offy + 197;
    ng.ng_GadgetID        =    GD_UNTERANZ;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 41 ] = g;

    ng.ng_TopEdge         =    offy + 210;
    ng.ng_GadgetID        =    GD_FRACHTANZ;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 42 ] = g;

    ng.ng_TopEdge         =    offy + 223;
    ng.ng_GadgetID        =    GD_REPANZ;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 43 ] = g;

    ng.ng_TopEdge         =    offy + 251;
    ng.ng_GadgetText      =    (UBYTE *)"Gesamtkosten :";
    ng.ng_GadgetID        =    GD_GESAMT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 44 ] = g;

    ng.ng_LeftEdge        =    offx + FIRSTCOL;
    ng.ng_TopEdge         =    offy + 313;
    ng.ng_Width           =    60;
    ng.ng_Height          =    13;
    ng.ng_GadgetText      =    (UBYTE *)"Frachträume   :";
    ng.ng_GadgetID        =    GD_CARGO;
    ng.ng_Flags           =    PLACETEXT_LEFT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 45 ] = g;

    ng.ng_TopEdge         =    offy + 329;
    ng.ng_GadgetText      =    (UBYTE *)"Jägerplätze   :";
    ng.ng_GadgetID        =    GD_FIGHTER;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 46 ] = g;

    ng.ng_LeftEdge        =    offx + SECONDCOL;
    ng.ng_TopEdge         =    offy + 297;
    ng.ng_GadgetText      =    (UBYTE *)"Truppenunterkünfte    :";
    ng.ng_GadgetID        =    GD_TROOPS;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 47 ] = g;

    ng.ng_TopEdge         =    offy + 313;
    ng.ng_GadgetText      =    (UBYTE *)"Anzahl Kolonisten     :";
    ng.ng_GadgetID        =    GD_COLONISTS;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 48 ] = g;

    ng.ng_LeftEdge        =    offx + FIRSTCOL;
    ng.ng_TopEdge         =    offy + 345;
    ng.ng_GadgetText      =    (UBYTE *)"D2T  Drohnen  :";
    ng.ng_GadgetID        =    GD_DRONESI;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 49 ] = g;

    ng.ng_TopEdge         =    offy + 297;
    ng.ng_GadgetText      =    (UBYTE *)"Sprungweite   :";
    ng.ng_GadgetID        =    GD_JUMPRANGE;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 50 ] = g;

    ng.ng_LeftEdge        =    offx + SECONDCOL;
    ng.ng_TopEdge         =    offy + 329;
    ng.ng_Width           =    SECONDWIDTH;
    ng.ng_GadgetText      =    (UBYTE *)"Manövrierbarkeitsrate :";
    ng.ng_GadgetID        =    GD_MR;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 51 ] = g;

    ng.ng_LeftEdge        =    offx + THIRDCOL;
    ng.ng_TopEdge         =    offy + 297;
    ng.ng_Width           =    THIRDWIDTH;
    ng.ng_Height          =    13;
    ng.ng_GadgetText      =    (UBYTE *)"Schildstärke :";
    ng.ng_GadgetID        =    GD_SHILDSTR;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 52 ] = g;

    ng.ng_LeftEdge        =    offx + FIRSTCOL;
    ng.ng_TopEdge         =    offy + 361;
    ng.ng_Width           =    FIRSTWIDTH;
    ng.ng_GadgetText      =    (UBYTE *)"D7T  Drohnen  :";
    ng.ng_GadgetID        =    GD_DRONESII;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 53 ] = g;

    ng.ng_LeftEdge        =    offx + 204;
    ng.ng_TopEdge         =    offy + 24;
    ng.ng_Width           =    36;
    ng.ng_Height          =    12;
    ng.ng_GadgetText      =    (UBYTE *)"Design #          :";
    ng.ng_GadgetID        =    GD_DESNUMCYCLE;
    ng.ng_Flags           =    PLACETEXT_LEFT;

    g = CreateGadget( CYCLE_KIND, g, &ng, GTCY_Labels, &DESNUMCYCLE0Labels[0], TAG_DONE );

    SNII1Gadgets[ 54 ] = g;

    ng.ng_LeftEdge        =    offx + FIRSTCOL;
    ng.ng_TopEdge         =    offy + 377;
    ng.ng_Width           =    FIRSTWIDTH;
    ng.ng_GadgetText      =    (UBYTE *)"D11T Drohnen  :";
    ng.ng_GadgetID        =    GD_DRONESIII;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 55 ] = g;

    ng.ng_LeftEdge        =    offx + SECONDCOL;
    ng.ng_TopEdge         =    offy + 345;
    ng.ng_Width           =    SECONDWIDTH;
    ng.ng_GadgetText      =    (UBYTE *)"Nahverteidigungsrate  :";
    ng.ng_GadgetID        =    GD_PDRATE;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 56 ] = g;

    ng.ng_LeftEdge        =    offx + SECONDCOL;
    ng.ng_TopEdge         =    offy + 361;
    ng.ng_Width           =    SECONDWIDTH;
    ng.ng_GadgetText      =    (UBYTE *)"Abschüsse pro Schuss  :";
    ng.ng_GadgetID        =    GD_KILLSHOT;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 57 ] = g;

    ng.ng_LeftEdge        =    offx + SECONDCOL;
    ng.ng_TopEdge         =    offy + 377;
    ng.ng_Width           =    SECONDWIDTH;
    ng.ng_GadgetText      =    (UBYTE *)"Computer+Sensoren     :";
    ng.ng_GadgetID        =    GD_COMB;

    g = CreateGadget( TEXT_KIND, g, &ng, GTST_MaxChars, 5, GTTX_Border, TRUE, TAG_DONE );

    SNII1Gadgets[ 58 ] = g;

    if ( NOT g )
        return( 2L );

    if ( NOT( SNII1Menus = CreateMenus( SNII1NewMenu, GTMN_FrontPen, NULL, TAG_DONE )))
        return( 3L );

    LayoutMenus( SNII1Menus, VisualInfo, GTMN_TextAttr, &topaz8, TAG_DONE );

    if ( NOT( SNII1Wnd = OpenWindowTags( NULL,
                    WA_Left,          SNII1Left,
                    WA_Top,           SNII1Top,
                    WA_Width,         SNII1Width,
                    WA_Height,        SNII1Height + offy,
                    WA_IDCMP,         BUTTONIDCMP|TEXTIDCMP|CYCLEIDCMP|IDCMP_MENUPICK|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
                    WA_Flags,         WFLG_SMART_REFRESH|WFLG_BACKDROP|WFLG_BORDERLESS|WFLG_ACTIVATE,
                    WA_Gadgets,       SNII1GList,
                    WA_CustomScreen,  Scr,
                        TAG_DONE )))
        return( 4L );

    SetMenuStrip( SNII1Wnd, SNII1Menus );
    GT_RefreshWindow( SNII1Wnd, NULL );

    SNII1Render();

    return( NULL );
}

void CloseSNII1Window( void )
{
    if ( SNII1Menus      ) {
        ClearMenuStrip( SNII1Wnd );
        FreeMenus( SNII1Menus );
        SNII1Menus = NULL;    }

    if ( SNII1Wnd        ) {
        CloseWindow( SNII1Wnd );
        SNII1Wnd = NULL;
    }

    if ( SNII1GList      ) {
        FreeGadgets( SNII1GList );
        SNII1GList = NULL;
    }
}

long OpenListReqWindow( void )
{
    struct NewGadget     ng;
    struct Gadget       *g;
    UWORD               offx, offy;

    offx = Scr->WBorLeft;
    offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;

    if ( NOT( g = CreateContext( &ListReqGList )))
        return( 1L );

    ng.ng_LeftEdge        =    offx + 8;
    ng.ng_TopEdge         =    offy + 18;
    ng.ng_Width           =    480;
    ng.ng_Height          =    150;
    ng.ng_GadgetText      =    (UBYTE *)"Komponente";
    ng.ng_TextAttr        =    &topaz8;
    ng.ng_GadgetID        =    GD_LIST;
    ng.ng_Flags           =    PLACETEXT_ABOVE;
    ng.ng_VisualInfo      =    VisualInfo;

    g = CreateGadget( LISTVIEW_KIND, g, &ng, GTLV_Labels, NULL, TAG_DONE );

    ListReqGadgets[ 0 ] = g;

    if ( NOT g )
        return( 2L );

    if ( NOT( ListReqWnd = OpenWindowTags( NULL,
                    WA_Left,          ListReqLeft,
                    WA_Top,           ListReqTop,
                    WA_Width,         ListReqWidth,
                    WA_Height,        ListReqHeight + offy,
                    WA_IDCMP,         LISTVIEWIDCMP|INTEGERIDCMP|IDCMP_MOUSEBUTTONS|IDCMP_MOUSEMOVE|IDCMP_MENUPICK|IDCMP_CLOSEWINDOW|IDCMP_INTUITICKS|IDCMP_REFRESHWINDOW,
                    WA_Flags,         WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
                    WA_Gadgets,       ListReqGList,
                    WA_Title,         ListReqWdt,
                    WA_CustomScreen,  Scr,
                        TAG_DONE )))
        return( 4L );

    GT_RefreshWindow( ListReqWnd, NULL );

    return( NULL );
}

void CloseListReqWindow( void )
{
    if ( ListReqWnd        ) {
        CloseWindow( ListReqWnd );
        ListReqWnd = NULL;
    }

    if ( ListReqGList      ) {
        FreeGadgets( ListReqGList );
        ListReqGList = NULL;
    }
}

long OpenListIntReqWindow( void )
{
    struct NewGadget     ng;
    struct Gadget       *g;
    UWORD               offx, offy;

    offx = Scr->WBorLeft;
    offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;

    if ( NOT( g = CreateContext( &ListIntReqGList )))
        return( 1L );

    ng.ng_LeftEdge        =    offx + 8;
    ng.ng_TopEdge         =    offy + 18;
    ng.ng_Width           =    480;
    ng.ng_Height          =    130;
    ng.ng_GadgetText      =    (UBYTE *)"Komponente";
    ng.ng_TextAttr        =    &topaz8;
    ng.ng_GadgetID        =    GD_LIST;
    ng.ng_Flags           =    PLACETEXT_ABOVE;
    ng.ng_VisualInfo      =    VisualInfo;

    g = CreateGadget( LISTVIEW_KIND, g, &ng, GTLV_Labels, NULL, GTLV_ShowSelected, NULL, TAG_DONE );

    ListIntReqGadgets[ 0 ] = g;

    ng.ng_LeftEdge        =    offx + 231;
    ng.ng_TopEdge         =    offy + 165;
    ng.ng_Width           =    54;
    ng.ng_Height          =    12;
    ng.ng_GadgetText      =    (UBYTE *)"Anzahl";
    ng.ng_GadgetID        =    GD_ANZ;

    g = CreateGadget( INTEGER_KIND, g, &ng, 
                       GTIN_Number, 0, 
                       GTIN_MaxChars, 5,
                       STRINGA_Justification, GACT_STRINGRIGHT,
                       STRINGA_ReplaceMode, TRUE,
                       TAG_DONE );

    ListIntReqGadgets[ 1 ] = g;

    if ( NOT g )
        return( 2L );

    if ( NOT( ListIntReqWnd = OpenWindowTags( NULL,
                    WA_Left,          ListIntReqLeft,
                    WA_Top,           ListIntReqTop,
                    WA_Width,         ListIntReqWidth,
                    WA_Height,        ListIntReqHeight + offy,
                    WA_IDCMP,         LISTVIEWIDCMP|INTEGERIDCMP|IDCMP_MOUSEBUTTONS|IDCMP_MOUSEMOVE|IDCMP_MENUPICK|IDCMP_CLOSEWINDOW|IDCMP_INTUITICKS|IDCMP_REFRESHWINDOW,
                    WA_Flags,         WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
                    WA_Gadgets,       ListIntReqGList,
                    WA_Title,         ListIntReqWdt,
                    WA_CustomScreen,  Scr,
                        TAG_DONE )))
        return( 4L );

    GT_RefreshWindow( ListIntReqWnd, NULL );

    return( NULL );
}

void CloseListIntReqWindow( void )
{
    if ( ListIntReqWnd        ) {
        CloseWindow( ListIntReqWnd );
        ListIntReqWnd = NULL;
    }

    if ( ListIntReqGList      ) {
        FreeGadgets( ListIntReqGList );
        ListIntReqGList = NULL;
    }
}

long OpenStrReqWindow( void )
{
    struct NewGadget     ng;
    struct Gadget       *g;
    UWORD               offx, offy;

    offx = Scr->WBorLeft;
    offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;

    if ( NOT( g = CreateContext( &StrReqGList )))
        return( 1L );

    ng.ng_LeftEdge        =    offx + 26;
    ng.ng_TopEdge         =    offy + 24;
    ng.ng_Width           =    222;
    ng.ng_Height          =    12;
    ng.ng_GadgetText      =    (UBYTE *)"Bitte Text eingeben";
    ng.ng_TextAttr        =    &topaz8;
    ng.ng_GadgetID        =    GD_TEXT;
    ng.ng_Flags           =    PLACETEXT_ABOVE;
    ng.ng_VisualInfo      =    VisualInfo;

    g = CreateGadget( STRING_KIND, g, &ng, GTST_MaxChars, 15, TAG_DONE );

    StrReqGadgets[ 0 ] = g;

    if ( NOT g )
        return( 2L );

    if ( NOT( StrReqWnd = OpenWindowTags( NULL,
                    WA_Left,          StrReqLeft,
                    WA_Top,           StrReqTop,
                    WA_Width,         StrReqWidth,
                    WA_Height,        StrReqHeight + offy,
                    WA_IDCMP,         STRINGIDCMP|IDCMP_MENUPICK|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
                    WA_Flags,         WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
                    WA_Gadgets,       StrReqGList,
                    WA_Title,         StrReqWdt,
                    WA_CustomScreen,  Scr,
                        TAG_DONE )))
        return( 4L );

    GT_RefreshWindow( StrReqWnd, NULL );

    return( NULL );
}

void CloseStrReqWindow( void )
{
    if ( StrReqWnd        ) {
        CloseWindow( StrReqWnd );
        StrReqWnd = NULL;
    }

    if ( StrReqGList      ) {
        FreeGadgets( StrReqGList );
        StrReqGList = NULL;
    }
}

