#pragma once
#include <Array.h>
#include <Bildschirm.h>
#include <DLLRegister.h>
#include <Fenster.h>
#include <HashMap.h>
#include <RCPointer.h>
#include <Schrift.h>
#include <UIInitialization.h>

#include "Menu.h"
#include "World.h"

#ifndef variable
#    define variable extern
#endif

variable Framework::HashMap<Framework::Text, Framework::RCPointer<Menu>>*
    menuRegister;
variable UIInit uiFactory;
variable Framework::HashMap<Framework::Text, Framework::RCPointer<Schrift>>*
    fontRegister;
variable DLLRegister* dlls;
variable Framework::WFenster* window;
variable BlockType** blockTypes;
variable int blockTypeCount;
variable ItemType** itemTypes;
variable int itemTypeCount;
variable EntityType** entityTypes;
variable int entityTypeCount;

void initVariables();
void initMenus();
void releaseVariables();

const ItemType* zItemType(int id);