If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Goosebumps Horrorland (Wii)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Goosebumps Horrorland

Developer: Gusto Games
Publisher: Scholastic
Platform: Wii
Released in US: October 28, 2008


SourceIcon.png This game has uncompiled source code.
DevTextIcon.png This game has hidden development-related text.


Goosebumps Horrorland is a surprisingly decent game based on the book series of the same name.

Unused Text

Source Code

A file named New Text Document.txt is in the game's root directory. This is a C++ header that handles the menu system. The file is also of interest since it contains a reference to an unreleased Windows port.


#include <SDCursor.h>
#include "SDFont.h"
#include "SDScreen.h"

#include "Globals/GBGlobals.h"
#include "GUI/Menus/GBMenuControl.h"
#include "GUI/Menus/GBMenuItem.h"
#include "GUI/Menus/GBMenuPage.h"
#include "PlayerControl/GBConversation.h"
#include "Memcard/GBMemcard.h"

//=======================================================================================

#ifdef GGPC
	const sint32 FSX = 640;
	const sint32 FSY = 480;
#endif
#ifdef GGDS
	const sint32 FSX = 640;
	const sint32 FSY = 480;
#endif
#ifdef GGWII
	const sint32 FSX = 640;
	const sint32 FSY = 528;
#endif
#ifdef GGPS2
	const sint32 FSX = 640;
	const sint32 FSY = 480;
#endif

// Anchor types
#define ATL (tGBGUIItem::GIA_TOP|tGBGUIItem::GIA_LEFT)
#define ATC (tGBGUIItem::GIA_TOP|tGBGUIItem::GIA_CENTRE)
#define ATR (tGBGUIItem::GIA_TOP|tGBGUIItem::GIA_RIGHT)
#define AML (tGBGUIItem::GIA_MIDDLE|tGBGUIItem::GIA_LEFT)
#define AMC (tGBGUIItem::GIA_MIDDLE|tGBGUIItem::GIA_CENTRE)
#define AMR (tGBGUIItem::GIA_MIDDLE|tGBGUIItem::GIA_RIGHT)
#define ABL (tGBGUIItem::GIA_BOTTOM|tGBGUIItem::GIA_LEFT)
#define ABC (tGBGUIItem::GIA_BOTTOM|tGBGUIItem::GIA_CENTRE)
#define ABR (tGBGUIItem::GIA_BOTTOM|tGBGUIItem::GIA_RIGHT)

// Item Types
#define TBM (tGBGUIItem::GIT_BITMAP)
#define TBG (tGBGUIItem::GIT_BACKGROUND)
#define THL (tGBGUIItem::GIT_HASH_LG)
#define TTL (tGBGUIItem::GIT_TEXT_LG)
#define T3D (tGBGUIItem::GIT_3DOBJECT)
#define TTT (tGBGUIItem::GIT_TUTORIAL_LG)

#define NH (tGBHash::NULL_HASH)


static char Buffer1_16[16];
static char Buffer2_16[16];
static char Buffer3_16[16];

tGBMenuItemDef MenuInitListScholastic[] = {
{ 0,0,		FSX,FSY,	ATL, ATL,	TBM, "LOGO_Scholastic",	NH,	SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_LOGO_GUSTO		,-1,-1,-1,-1 }
};

tGBMenuItemDef MenuInitListGusto[] = {
{ 0,0,		FSX,FSY,	ATL, ATL,	TBM, "LOGO_gusto",		NH,	SDFRAC_ONE,	tGBMenuItem::MCF_CLOSE_MENU, 0,									-1,-1,-1,-1 }
};

#ifdef GGDS
	#define MIDDLE_MENU_ITEM_Y(iItem, iNumItems)  ( 260 + (iItem * 60) - ((iNumItems*60)/2) )
	#define MIDDLE_YESNO_MESSAGE_Y 240
	#define MIDDLE_YESNO_OPTIONS_Y (400+40)
	#define BOTTOM_YESNO_MESSAGE_Y 340
	#define BOTTOM_YESNO_OPTIONS_Y (400+40)
	//#define MIDDLE_YESNO_MESSAGE_Y 210
	//#define MIDDLE_YESNO_OPTIONS_Y 270
#else
	#define MIDDLE_MENU_ITEM_Y(iItem, iNumItems)  ( 240 + (iItem * 40) - ((iNumItems*40)/2) )
	#define MIDDLE_YESNO_MESSAGE_Y 190
	#define MIDDLE_YESNO_OPTIONS_Y 230
	#define BOTTOM_YESNO_MESSAGE_Y 300
	#define BOTTOM_YESNO_OPTIONS_Y 400
#endif

#define MMLE -200		// Main Menu Left Edge

tGBMenuItemDef MenuInitListMain[] = {
//{ 0,0,		FSX,FSY,	ATL, ATL,	TBM, "BGND_Menu1",		NH,	SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,-1,-1,-1,-1 },
{ MMLE,MIDDLE_MENU_ITEM_Y(0,5),	140,35,		ATC, ATL,	THL, "",	"Story",		SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_STORY			,-1, 1,-1,-1 },
{ MMLE,MIDDLE_MENU_ITEM_Y(1,5),	140,35,		ATC, ATL,	THL, "",	"Arcade",		SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_ARCADE			, 0, 2,-1,-1 },
{ MMLE,MIDDLE_MENU_ITEM_Y(2,5),	140,35,		ATC, ATL,	THL, "",	"SaveGame",		SDFRAC_ONE,	tGBMenuItem::MCF_SAVE_GAME										, 1, 3,-1,-1 },
{ MMLE,MIDDLE_MENU_ITEM_Y(3,5),	140,35,		ATC, ATL,	THL, "",	"Options",		SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_OPTIONS_MAIN		, 2, 4,-1,-1 },
{ MMLE,MIDDLE_MENU_ITEM_Y(4,5),	140,35,		ATC, ATL,	THL, "",	"QuitGame",		SDFRAC_ONE,	tGBMenuItem::MCF_EXIT_TO_DESKTOP, 0								, 3,-1,-1,-1 }
};

tGBMenuItemDef MenuInitListStory[] = {
{ MMLE,MIDDLE_MENU_ITEM_Y(0,3),	140,35,		ATC, ATL,	THL, "",	"Continue",		SDFRAC_ONE,	tGBMenuItem::MCF_CONTINUE_GAME, 0								,-1, 1,-1,-1 },
{ MMLE,MIDDLE_MENU_ITEM_Y(1,3),	140,35,		ATC, ATL,	THL, "",	"New",			SDFRAC_ONE,	tGBMenuItem::MCF_START_NEW_GAME, 0								, 0,-1,-1,-1 },
{ MMLE,MIDDLE_MENU_ITEM_Y(2,3),	140,35,		ATC, ATL,	THL, "",	"Back",			SDFRAC_ONE,	tGBMenuItem::MCF_BACK, 0										,-1,-1,-1,-1 },
};

tGBMenuItemDef MenuInitListArcade[] = {
{ MMLE,MIDDLE_MENU_ITEM_Y(0,3),	140,35,		ATC, ATL,	THL, "",	"SinglePlayer",	SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_SINGLEPLAYER		,-1, 1,-1,-1 },
{ MMLE,MIDDLE_MENU_ITEM_Y(1,3),	140,35,		ATC, ATL,	THL, "",	"Multiplayer",	SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_MULTIPLAYER		, 0,-1,-1,-1 },
{ MMLE,MIDDLE_MENU_ITEM_Y(2,3),	140,35,		ATC, ATL,	THL, "",	"Back",			SDFRAC_ONE,	tGBMenuItem::MCF_BACK, 0										,-1,-1,-1,-1 },
};

tGBMenuItemDef MenuInitListSinglePlayer[] = {
{ MMLE,MIDDLE_MENU_ITEM_Y(0,1),	140,35,		ATC, ATL,	THL, "",	"Back",			SDFRAC_ONE,	tGBMenuItem::MCF_BACK, 0										,-1,-1,-1,-1 },
};

tGBMenuItemDef MenuInitListMultiPlayer[] = {
{ MMLE,MIDDLE_MENU_ITEM_Y(0,1),	140,35,		ATC, ATL,	THL, "",	"Back",			SDFRAC_ONE,	tGBMenuItem::MCF_BACK, 0										,-1,-1,-1,-1 },
};

tGBMenuItemDef MenuInitListOptionsMain[] = {
{ 0,0,		FSX,FSY,	ATL, ATL,	TBM, "BGND_Menu1",		NH,	SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,-1,-1,-1,-1 },
{ 320,MIDDLE_MENU_ITEM_Y(0,4),	140,35,		ATL, ATC,	THL, "",	"DebugLevel",	SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_DEBUG_LEVEL_SELECT,-1,2,-1,-1 },
{ 320,MIDDLE_MENU_ITEM_Y(1,4),	140,35,		ATL, ATC,	THL, "",	"Options",		SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,1,3,-1,-1 },
{ 320,MIDDLE_MENU_ITEM_Y(2,4),	140,35,		ATL, ATC,	THL, "",	"Options",		SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,2,4,-1,-1 },
{ 320,MIDDLE_MENU_ITEM_Y(3,4),	140,35,		ATL, ATC,	THL, "",	"Back",			SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_MAIN_MENU		,3,-1,-1,-1 },
};

tGBMenuItemDef MenuInitListOptionsGame[] = {
{ 0,	0,	FSX,FSY,	ATL, ATL,	TBG, "",			NH,		SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,-1,-1,-1,-1 },
{ 320,190,	140,40,		ATL, ATC,	THL, "",	"Options",		SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,-1,2,-1,-1 },
{ 320,230,	140,40,		ATL, ATC,	THL, "",	"Options",		SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,1,3,-1,-1 },
{ 320,270,	140,40,		ATL, ATC,	THL, "",	"Options",		SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,2,4,-1,-1 },
{ 320,330,	140,40,		ATL, ATC,	THL, "",	"Back",			SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_PAUSE_GAME		,3,-1,-1,-1 },
};

tGBMenuItemDef MenuInitListOptionsMiniGame[] = {
{ 0,	0,	FSX,FSY,	ATL, ATL,	TBG, "",			NH,		SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,-1,-1,-1,-1 },
{ 420,190,	140,40,		ATL, ATR,	THL, "",	"FixedThrow",	SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,-1,-1,-1,-1 },
{ 450,190,	140,40,		ATL, ATL,	THL, "",	"YN",			SDFRAC_ONE,	tGBMenuItem::MCF_TOGGLE, tGBMenuControl::MV_FIXED_THROW_SPEED	,-1,-1,-1,-1 },
{ 320,330,	140,40,		ATL, ATC,	THL, "",	"Back",			SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_PAUSE_MINIGAME	,-1,-1,-1,-1 },
};

tGBMenuItemDef MenuInitListPauseGame[] = {
{ 0,	0,							FSX,FSY,	ATL, ATL,	TBG, "",			NH,		SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,-1,-1,-1,-1 },
{ 320,  MIDDLE_MENU_ITEM_Y(0,4),	140,40,		ATL, ATC,	THL, "",	"Continue",		SDFRAC_ONE,	tGBMenuItem::MCF_CLOSE_MENU, 0									,-1, 2,-1,-1 },
#ifdef KID_TEST
{ 320,  MIDDLE_MENU_ITEM_Y(1,4),	140,40,		ATL, ATC,	THL, "",	"DebugLevel",	SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_KID_TEST_LEVEL_SELECT, 1, 3,-1,-1 },
#else
{ 320,  MIDDLE_MENU_ITEM_Y(1,4),	140,40,		ATL, ATC,	THL, "",	"Options",		SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_OPTIONS_GAME		, 1, 3,-1,-1 },
#endif
{ 320,  MIDDLE_MENU_ITEM_Y(2,4),	140,40,		ATL, ATC,	THL, "",	"Collection",	SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, 0 /* Dynamically changed */			, 2, 4,-1,-1 },

#ifdef GGDS
{ 320,  MIDDLE_MENU_ITEM_Y(3,4),	140,40,		ATL, ATC,	THL, "",	"QuitGame",		SDFRAC_ONE,	tGBMenuItem::MCF_GOTO_LEVEL, -1									, 3,-1,-1,-1 }
#else
{ 320,  MIDDLE_MENU_ITEM_Y(3,4),	140,40,		ATL, ATC,	THL, "",	"QuitGame",		SDFRAC_ONE,	tGBMenuItem::MCF_QUIT_GAME, 0									, 3,-1,-1,-1 }
#endif
};

tGBMenuItemDef MenuInitListPauseMiniGame[] = {
{ 0,	0,							FSX,FSY,	ATL, ATL,	TBG, "",			NH,		SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,-1,-1,-1,-1 },
{ 320,	MIDDLE_MENU_ITEM_Y(0,4),	140, 40,	ATL, ATC,	THL, "",	"Continue",		SDFRAC_ONE,	tGBMenuItem::MCF_CLOSE_MENU, 0									,-1, 2,-1,-1 },
{ 320,	MIDDLE_MENU_ITEM_Y(1,4),	140,40,		ATL, ATC,	THL, "",	"RestartLevel",	SDFRAC_ONE,	tGBMenuItem::MCF_RESTART_LEVEL, 0								, 1, 3,-1,-1 },
#ifdef KID_TEST
{ 320,	MIDDLE_MENU_ITEM_Y(2,4),	140,40,		ATL, ATC,	THL, "",	"DebugLevel",	SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_KID_TEST_LEVEL_SELECT, 2, 4,-1,-1 },
#else
{ 320,	MIDDLE_MENU_ITEM_Y(2,4),	140,40,		ATL, ATC,	THL, "",	"Options",		SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_OPTIONS_MINIGAME	, 2, 4,-1,-1 },
#endif
{ 320,	MIDDLE_MENU_ITEM_Y(3,4),	140,40,		ATL, ATC,	THL, "",	"ExitLevel",	SDFRAC_ONE,	tGBMenuItem::MCF_EXIT_LEVEL, 0									, 3,-1,-1,-1 },
};

tGBMenuItemDef MenuInitListEnterAttraction[] = {
{  320 ,190,	150,40,		ATL, ATC,	THL, "",	"EnterAttr",	SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,-1,-1,-1,-1 },
{  180 ,230,	50,40,		ATL, ATL,	THL, "",	"Yes",			SDFRAC_ONE,	tGBMenuItem::MCF_GOTO_LEVEL, -1									,-1,-1,-1,-1 },
{ -180 ,230,	50,40,		ATR, ATR,	THL, "",	"No",			SDFRAC_ONE,	tGBMenuItem::MCF_CLOSE_MENU, 0									,-1,-1,-1,-1 }
};

tGBMenuItemDef MenuInitListGotoLevel[] = {
{  320 ,190,	150,40,		ATL, ATC,	THL, "",	"GoToArea",		SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,-1,-1,-1,-1 },
{  180 ,230,	50,40,		ATL, ATL,	THL, "",	"Yes",			SDFRAC_ONE,	tGBMenuItem::MCF_GOTO_LEVEL, -1									,-1,-1,-1,-1 },
{ -180 ,230,	50,40,		ATR, ATR,	THL, "",	"No",			SDFRAC_ONE,	tGBMenuItem::MCF_CLOSE_MENU, 0									,-1,-1,-1,-1 }
};

tGBMenuItemDef MenuInitListLevelComplete[] = {
{ 320   ,MIDDLE_YESNO_MESSAGE_Y,	150,40,	ATL, ATC,	THL, "",	"LevCompMess",	SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,-1,-1,-1,-1 },
{ 180	,MIDDLE_YESNO_OPTIONS_Y,	60,40,	ATL, ATL,	THL, "",	"Replay",		SDFRAC_ONE,	tGBMenuItem::MCF_RESTART_LEVEL, 0								,-1,-1,-1, 2 },
#ifdef KID_TEST
{ -180	,MIDDLE_YESNO_OPTIONS_Y,	60,40,	ATR, ATR,	THL, "",	"Continue",		SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_KID_TEST_LEVEL_SELECT,-1,-1, 1,-1 }
#else
{ -180	,MIDDLE_YESNO_OPTIONS_Y,	60,40,	ATR, ATR,	THL, "",	"Continue",		SDFRAC_ONE,	tGBMenuItem::MCF_EXIT_LEVEL, 0									,-1,-1, 1,-1 }
#endif
};

tGBMenuItemDef MenuInitListLevelFailed[] = {
{  320,MIDDLE_YESNO_MESSAGE_Y,	150,40,		ATL, ATC,	THL, "",	"LevCompMess",	SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,-1,-1,-1,-1 },
{  180,MIDDLE_YESNO_OPTIONS_Y,	60,40,		ATL, ATL,	THL, "",	"Retry",		SDFRAC_ONE,	tGBMenuItem::MCF_RESTART_LEVEL, 0								,-1,-1,-1, 2 },
#ifdef KID_TEST
{ -180,MIDDLE_YESNO_OPTIONS_Y,	60,40,		ATR, ATR,	THL, "",	"Exit",			SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_KID_TEST_LEVEL_SELECT,-1,-1, 1,-1 }
#else
{ -180,MIDDLE_YESNO_OPTIONS_Y,	60,40,		ATR, ATR,	THL, "",	"Exit",			SDFRAC_ONE,	tGBMenuItem::MCF_EXIT_LEVEL, 0									,-1,-1, 1,-1 }
#endif
};


#ifndef GGDS
tGBMenuItemDef MenuInitListLevelStart[] = {
{ 0,-60,	120,40,		ABC, ATC,	THL, "",	"Instructions",	SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, 0 /* Dynamically changed */			,-1,-1, 2,-1 },
{ 0,-60,	120,40,		ABC, ATC,	THL, "",	"StartGame",	SDFRAC_ONE,	tGBMenuItem::MCF_CLOSE_MENU, 0									,-1,-1,-1, 1 },
{ 0,20,		FSX,FSY,	AMC, ATC,	T3D, "Sign",		NH,		SDFRAC(2.5f), tGBMenuItem::MCF_CLOSE_MENU, 0								,-1,-1,-1,-1 },
};
#else
tGBMenuItemDef MenuInitListLevelStart[] = {
{ 0, 100,	120,40,		AMC, ATC,	THL, "",	"Instructions",	SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, 0 /* Dynamically changed */			,-1,-1, 2,-1 },
{ 0, 160,	120,40,		AMC, ATC,	THL, "",	"StartGame",	SDFRAC_ONE,	tGBMenuItem::MCF_CLOSE_MENU, 0									,-1,-1,-1, 1 },
};
#endif

#ifndef GGDS
tGBMenuItemDef MenuInitListInfoSign[] = {
{ 0, 460,	FSX,FSY,	AMC, ATC,	T3D, "SignBack",	NH,		SDFRAC(0.75f), tGBMenuItem::MCF_NONE, 0										,-1,-1,-1,-1 },
{ 0,-60,	200,40,		ABC, ATC,	THL, "",	"ReturnToGame",	SDFRAC_ONE,	tGBMenuItem::MCF_CLOSE_MENU, 0									,-1,-1,-1,-1 }
};
#else
tGBMenuItemDef MenuInitListInfoSign[] = {
	{ 0, 460,	FSX,FSY,	AMC, ATC,	T3D, "SignBack",	NH,		SDFRAC(0.75f), tGBMenuItem::MCF_NONE, 0										,-1,-1,-1,-1 },
	{ 0,-40,	200,40,		ABC, ATC,	THL, "",	"ReturnToGame",	SDFRAC_ONE,	tGBMenuItem::MCF_CLOSE_MENU, 0									,-1,-1,-1,-1 }
};
#endif

tGBMenuItemDef MenuInitListDebugLevelSelect[] = {
{ 320,410,	140,40,		ATL, ATC,	THL, "",	"Back",			SDFRAC_ONE,	tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_MAIN_MENU		,-1,-1,-1,-1 },
};

tGBMenuItemDef MenuInitListKidTestLevelSelect[] = {
{ 320,410,	140,40,		ATL, ATC,	THL, "",	"Back",			SDFRAC_ONE,	tGBMenuItem::MCF_BACK, 0										,-1,-1,-1,-1 },
};

tGBMenuItemDef MenuInitListMemCardChecking[] = {
{ 0,0,		FSX,FSY,	ATL, ATL,	TBM, "BGND_Menu1",		NH,	SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0										,-1,-1,-1,-1 },
{  320 ,190,	150,40,		ATL, ATC,	THL, "",	"MemcardChecking",	SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0								,-1,-1,-1,-1 },
};


#ifndef GGDS
#define INV_ROW_Y(iRow)  (((110 + (35*iRow)) + (iRow>5?15:0)))
#define INV_TITLE_Y (60)
#else
// Spacing adjusted to fit text to 8px tile grid on DS.  40 pixels at 480high = 16 pixels on DS
#define INV_ROW_Y(iRow)  (110 + (40*iRow))
#define INV_TITLE_Y (40)
#endif

#define STAR_X(i)  (-(110 + ((2-i)*40)))

tGBMenuItemDef MenuInitListInventoryOverall[] = {
	{ 0,0,				FSX,FSY,	ATL, ATL,	TBG,	"",	NH,							SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0														,-1,-1,-1,-1 },
	{ 0,INV_TITLE_Y,	0,0,		ATC, AMC,	THL,	"",	"Overall",					SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														,-1,-1,-1,-1 },
	{ -50,-35,			0,0,		AMC, AMR,	THL,	"", "Secrets",					SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														,-1,-1,-1,-1 },
	{ 50,-35,			0,0,		AMC, AML,	TTL,	Buffer2_16, "xxTotalSecretsxx",	SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														,-1,-1,-1,-1 },
	{ -50,0,			0,0,		AMC, AMR,	THL,	"", "Tokens",					SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														,-1,-1,-1,-1 },
	{ 50,0,				0,0,		AMC, AML,	TTL,	Buffer1_16, "xxTotalTokensxx",	SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														,-1,-1,-1,-1 },
	{ -50,35,			0,0,		AMC, AMR,	THL,	"", "TotalFrights",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														,-1,-1,-1,-1 },
	{ 50, 35,			0,0,		AMC, AML,	TTL,	Buffer3_16, "xxTotalFrightsxx",	SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														,-1,-1,-1,-1 },
	{ 30,-INV_TITLE_Y,	120,40,		ABL, AML,	THL,	"",	"Previous",					SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_INVENTORY_TERROR_TOMBS			,-1,-1,-1,-1 },
	{ 0,-INV_TITLE_Y,	120,40,		ABC, AMC,	THL,	"",	"Back",						SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_PAUSE_GAME						,-1,-1,-1,-1 },
	{ -30,-INV_TITLE_Y,	120,40,		ABR, AMR,	THL,	"",	"Next",						SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_INVENTORY_CARNIVAL_OF_SCREAMS	,-1,-1,-1,-1 },
};


tGBMenuItemDef MenuInitListInventoryCOS[] = {
	{ 0,0,							FSX,FSY,	ATL, ATL,	TBG,	"",	NH,							SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0														},
	{ 0,			INV_TITLE_Y,	0,0,		ATC, AMC,	THL,	"",	"CarnivalOfScreams",		SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ 110,			INV_ROW_Y(0),	0,0,		ATL, AML,	THL,	"", "ScreamerSteamer",			SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(0),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(0),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(0),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(1),	0,0,		ATL, AML,	THL,	"", "BumperCarnage",			SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(1),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(1),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(1),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(2),	0,0,		ATL, AML,	THL,	"", "HorrorLandDerby",			SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(2),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(2),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(2),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(3),	0,0,		ATL, AML,	THL,	"", "DeadRinger",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(3),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(3),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(3),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(4),	0,0,		ATL, AML,	THL,	"", "MonsterHunt",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(4),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(4),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(4),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(5),	0,0,		ATL, AML,	THL,	"", "WheelOfMisfortune",		SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(5),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(5),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(5),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(6),	0,0,		ATL, AML,	THL,	"", "Secrets",					SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ -110,			INV_ROW_Y(6),	0,0,		ATR, AMR,	TTL,	Buffer1_16, "xxTotalSecretsxx",	SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ 110,			INV_ROW_Y(7),	0,0,		ATL, AML,	THL,	"", "TotalFrights",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ -110,			INV_ROW_Y(7),	0,0,		ATR, AMR,	TTL,	Buffer2_16, "xxTotalFrightsxx",	SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ 30,			-INV_TITLE_Y,	120,40,		ABL, AML,	THL,	"",	"Previous",					SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_INVENTORY_OVERALL				},
	{ 0,			-INV_TITLE_Y,	120,40,		ABC, AMC,	THL,	"",	"Back",						SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_PAUSE_GAME						},
	{ -30,			-INV_TITLE_Y,	120,40,		ABR, AMR,	THL,	"",	"Next",						SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_INVENTORY_VAMPIRE_VILLAGE		},
};		

tGBMenuItemDef MenuInitListInventoryVV[] = {
	{ 0,			0,				FSX,FSY,	ATL, ATL,	TBG,	"",	NH,							SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0														},
	{ 0,			INV_TITLE_Y,	0,0,		ATC, AMC,	THL,	"",	"VampireVillage",			SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ 110,			INV_ROW_Y(0),	0,0,		ATL, AML,	THL,	"", "RollerGhoster",			SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(0),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(0),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(0),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(1),	0,0,		ATL, AML,	THL,	"", "CoffinCruise",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(1),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(1),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(1),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(2),	0,0,		ATL, AML,	THL,	"", "GarlicCrusher",			SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(2),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(2),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(2),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(3),	0,0,		ATL, AML,	THL,	"", "BattingCage",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(3),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(3),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(3),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(4),	0,0,		ATL, AML,	THL,	"", "FlashFright",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(4),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(4),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(4),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(5),	0,0,		ATL, AML,	THL,	"", "PuttCemetery",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(5),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(5),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(5),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(6),	0,0,		ATL, AML,	THL,	"", "Secrets",					SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ -110,			INV_ROW_Y(6),	0,0,		ATR, AMR,	TTL,	Buffer1_16, "xxTotalSecretsxx",	SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ 110,			INV_ROW_Y(7),	0,0,		ATL, AML,	THL,	"", "TotalFrights",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ -110,			INV_ROW_Y(7),	0,0,		ATR, AMR,	TTL,	Buffer2_16, "xxTotalFrightsxx",	SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ 30,			-INV_TITLE_Y,	120,40,		ABL, AML,	THL,	"",	"Previous",					SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_INVENTORY_CARNIVAL_OF_SCREAMS	},
	{  0,			-INV_TITLE_Y,	120,40,		ABC, AMC,	THL,	"",	"Back",						SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_PAUSE_GAME						},
	{ -30,			-INV_TITLE_Y,	120,40,		ABR, AMR,	THL,	"",	"Next",						SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_INVENTORY_FEVER_SWAMP			},
};

tGBMenuItemDef MenuInitListInventoryFS[] = {
	{ 0,			0,				FSX,FSY,	ATL, ATL,	TBG,	"",	NH,							SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0														},
	{ 0,			INV_TITLE_Y,	0,0,		ATC, AMC,	THL,	"",	"FeverSwamp",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ 110,			INV_ROW_Y(0),	0,0,		ATL, AML,	THL,	"", "SlimeFlume",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(0),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(0),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(0),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(1),	0,0,		ATL, AML,	THL,	"", "BogOctopus",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(1),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(1),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(1),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(2),	0,0,		ATL, AML,	THL,	"", "SwampStomp",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(2),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(2),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(2),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(3),	0,0,		ATL, AML,	THL,	"", "WhirldWideWeb",			SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(3),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(3),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(3),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(4),	0,0,		ATL, AML,	THL,	"", "CleanJellyjam",			SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(4),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(4),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(4),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(5),	0,0,		ATL, AML,	THL,	"", "RatRace",					SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(5),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(5),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(5),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(6),	0,0,		ATL, AML,	THL,	"", "Secrets",					SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ -110,			INV_ROW_Y(6),	0,0,		ATR, AMR,	TTL,	Buffer1_16, "xxTotalSecretsxx",	SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ 110,			INV_ROW_Y(7),	0,0,		ATL, AML,	THL,	"", "TotalFrights",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ -110,			INV_ROW_Y(7),	0,0,		ATR, AMR,	TTL,	Buffer2_16, "xxTotalFrightsxx",	SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ 30,			-INV_TITLE_Y,	120,40,		ABL, AML,	THL,	"",	"Previous",					SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_INVENTORY_VAMPIRE_VILLAGE		},
	{ 0,			-INV_TITLE_Y,	120,40,		ABC, AMC,	THL,	"",	"Back",						SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_PAUSE_GAME						},
	{ -30,			-INV_TITLE_Y,	120,40,		ABR, AMR,	THL,	"",	"Next",						SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_INVENTORY_MAD_LABS				},
};

tGBMenuItemDef MenuInitListInventoryML[] = {
	{ 0,			0,				FSX,FSY,	ATL, ATL,	TBG,	"",	NH,							SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0														},
	{ 0,			INV_TITLE_Y,	0,0,		ATC, AMC,	THL,	"",	"MadLabs",					SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ 110,			INV_ROW_Y(0),	0,0,		ATL, AML,	THL,	"", "BumpNBuzz",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(0),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(0),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(0),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(1),	0,0,		ATL, AML,	THL,	"", "CastleVoltaire",			SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(1),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(1),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(1),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(2),	0,0,		ATL, AML,	THL,	"", "BrainDraining",			SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(2),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(2),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(2),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(3),	0,0,		ATL, AML,	THL,	"", "MonsterBlood",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(3),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(3),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(3),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(4),	0,0,		ATL, AML,	THL,	"", "ToxicGunkTank",			SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(4),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(4),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(4),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(5),	0,0,		ATL, AML,	THL,	"", "BrainwaveBuzzwire",		SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),	INV_ROW_Y(5),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),	INV_ROW_Y(5),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),	INV_ROW_Y(5),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,			INV_ROW_Y(6),	0,0,		ATL, AML,	THL,	"", "Secrets",					SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ -110,			INV_ROW_Y(6),	0,0,		ATR, AMR,	TTL,	Buffer1_16, "xxTotalSecretsxx",	SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ 110,			INV_ROW_Y(7),	0,0,		ATL, AML,	THL,	"", "TotalFrights",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ -110,			INV_ROW_Y(7),	0,0,		ATR, AMR,	TTL,	Buffer2_16, "xxTotalFrightsxx",	SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ 30,		   -INV_TITLE_Y,	120,40,		ABL, AML,	THL,	"",	"Previous",					SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_INVENTORY_FEVER_SWAMP			},
	{ 0,		   -INV_TITLE_Y,	120,40,		ABC, AMC,	THL,	"",	"Back",						SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_PAUSE_GAME						},
	{ -30,		   -INV_TITLE_Y,	120,40,		ABR, AMR,	THL,	"",	"Next",						SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_INVENTORY_TERROR_TOMBS			},
};

tGBMenuItemDef MenuInitListInventoryTT[] = {
	{ 0,				0,				FSX,FSY,	ATL, ATL,	TBG,	"",	NH,							SDFRAC_ONE,	tGBMenuItem::MCF_NONE, 0														},
	{ 0,				INV_TITLE_Y,	0,0,		ATC, AMC,	THL,	"",	"TerrorTombs",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ 110,				INV_ROW_Y(0),	0,0,		ATL, AML,	THL,	"", "ScorpionOfDoom",			SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),		INV_ROW_Y(0),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),		INV_ROW_Y(0),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),		INV_ROW_Y(0),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,				INV_ROW_Y(1),	0,0,		ATL, AML,	THL,	"", "CryptCoaster",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),		INV_ROW_Y(1),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),		INV_ROW_Y(1),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),		INV_ROW_Y(1),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,				INV_ROW_Y(2),	0,0,		ATL, AML,	THL,	"", "PharaohsFairways",			SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),		INV_ROW_Y(2),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),		INV_ROW_Y(2),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),		INV_ROW_Y(2),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,				INV_ROW_Y(3),	0,0,		ATL, AML,	THL,	"", "BugBattle",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),		INV_ROW_Y(3),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),		INV_ROW_Y(3),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),		INV_ROW_Y(3),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,				INV_ROW_Y(4),	0,0,		ATL, AML,	THL,	"", "WrapBattle",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),		INV_ROW_Y(4),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),		INV_ROW_Y(4),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),		INV_ROW_Y(4),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,				INV_ROW_Y(5),	0,0,		ATL, AML,	THL,	"", "MummyRun",					SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ STAR_X(0),		INV_ROW_Y(5),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(1),		INV_ROW_Y(5),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ STAR_X(2),		INV_ROW_Y(5),	32,32,		ATR, AMR,	TBM,	"empty_star", "",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0	/* asset name dynamically changed */				},
	{ 110,				INV_ROW_Y(6),	0,0,		ATL, AML,	THL,	"", "Secrets",					SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ -110,				INV_ROW_Y(6),	0,0,		ATR, AMR,	TTL,	Buffer1_16, "xxTotalSecretsxx",	SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ 110,				INV_ROW_Y(7),	0,0,		ATL, AML,	THL,	"", "TotalFrights",				SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ -110,				INV_ROW_Y(7),	0,0,		ATR, AMR,	TTL,	Buffer2_16, "xxTotalFrightsxx",	SDFRAC_ONE, tGBMenuItem::MCF_NONE, 0														},
	{ 30,-INV_TITLE_Y,	120,40,		ABL, AML,	THL,	"",	"Previous",					SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_INVENTORY_MAD_LABS				},
	{ 0,-INV_TITLE_Y,	120,40,		ABC, AMC,	THL,	"",	"Back",						SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_PAUSE_GAME						},
	{ -30,-INV_TITLE_Y,	120,40,		ABR, AMR,	THL,	"",	"Next",						SDFRAC_ONE, tGBMenuItem::MCF_OPEN_MENU, tGBMenuControl::MP_INVENTORY_OVERALL				},
};

tGBMenuItemDef MenuInitListConversation[] = {
	{ 0,	BOTTOM_YESNO_MESSAGE_Y,	0,0,		ATC, ABC,	TTL,	"",	"",			SDFRAC_ONE, tGBMenuItem::MCF_NONE,			0													,-1,-1,-1,-1},
	{ 0,	BOTTOM_YESNO_OPTIONS_Y,	60,40,		ATC, ATC,	THL,	"", "OK",		SDFRAC_ONE, tGBMenuItem::MCF_CLOSE_MENU,	tGBConversation::CA_OK								,-1,-1,-1,-1},
	{ -130,	BOTTOM_YESNO_OPTIONS_Y, 60,40,		ATC, ATL,	THL,	"", "Yes",		SDFRAC_ONE, tGBMenuItem::MCF_CLOSE_MENU,	tGBConversation::CA_YES								,-1,-1,-1, 3},
	{ 130,	BOTTOM_YESNO_OPTIONS_Y,	60,40,		ATC, ATR,	THL,	"", "No",		SDFRAC_ONE, tGBMenuItem::MCF_CLOSE_MENU,	tGBConversation::CA_NO								,-1,-1, 2,-1},
};



tGBMenuItemDef MenuInitListGolfHoleIntro[] = {
	{ 320,190,	640,480,	ATL, ATC,	THL, "",	"GolfHoleNum",	SDFRAC_ONE,	tGBMenuItem::MCF_CLOSE_MENU, 0													,-1,-1,-1,-1},
	{ 320,230,	60,40,		ATL, ATC,	THL, "",	"GolfHolePar",	SDFRAC_ONE,	tGBMenuItem::MCF_CLOSE_MENU, 0													,-1,-1,-1,-1}
};

tGBMenuItemDef MenuInitListGolfShotIntro[] = {
	{ 320,190,	640,480,	ATL, ATC,	THL, "",	"GolfShotNum",	SDFRAC_ONE,	tGBMenuItem::MCF_CLOSE_MENU, 0													,-1,-1,-1,-1}
};

tGBMenuItemDef MenuInitListGolfHoleOutro[] = {
	{ 320,190,	640,480,	ATL, ATC,	THL, "",	"GolfHoleNum",	SDFRAC_ONE,	tGBMenuItem::MCF_CLOSE_MENU, 0													,-1,-1,-1,-1},
	{ 320,230,	60,40,		ATL, ATC,	THL, "",	"GolfHolePar",	SDFRAC_ONE,	tGBMenuItem::MCF_CLOSE_MENU, 0													,-1,-1,-1,-1},
	{ 320,270,	60,40,		ATL, ATC,	THL, "",	"GolfNumShots",	SDFRAC_ONE,	tGBMenuItem::MCF_CLOSE_MENU, 0													,-1,-1,-1,-1}
};




#define NumItems(op1)	(sizeof(op1) / sizeof(tGBMenuItemDef))

#ifndef GGDS
#include "gui/Menus/GBTutorialDefinitions.h"
#else
#include "gui/Menus/GBTutorialDefinitions_DS.h"
#endif

//					Name							 title							numitems,						 startitem, mintime,	maxtime,  timeout index,  list
tGBMenuPageDef MenuInitPageScholastic			= { 0,
													tGBHash::NULL_HASH,	NumItems(MenuInitListScholastic),		0, SDFRAC_ONE, SDFRAC(5.0f), 0,		MenuInitListScholastic,	NULL,	NULL	};
tGBMenuPageDef MenuInitPageGusto				= { 0,
													tGBHash::NULL_HASH,	NumItems(MenuInitListGusto),			0, SDFRAC_ONE, SDFRAC(5.0f), 0,		MenuInitListGusto,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageMain					= { MPF_HAS_BORDER | MPF_DISPLAY_MOVE_UD | MPF_DISPLAY_SELECT,
													"MainMenu",			NumItems(MenuInitListMain),				0, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListMain,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageStory				= { MPF_BACK_ALLOWED | MPF_HAS_BORDER | MPF_DISPLAY_MOVE_UD | MPF_DISPLAY_SELECT | MPF_DISPLAY_BACK,
													"Story",			NumItems(MenuInitListStory),			0, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListStory,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageArcade				= { MPF_BACK_ALLOWED | MPF_HAS_BORDER | MPF_DISPLAY_MOVE_UD | MPF_DISPLAY_SELECT | MPF_DISPLAY_BACK,
													"Arcade",			NumItems(MenuInitListArcade),			0, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListArcade,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageSinglePlayer			= { MPF_BACK_ALLOWED | MPF_HAS_BORDER | MPF_DISPLAY_MOVE_UD | MPF_DISPLAY_SELECT | MPF_DISPLAY_BACK,
													"SinglePlayer",		NumItems(MenuInitListSinglePlayer),		0, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListSinglePlayer,	NULL,	NULL	};
tGBMenuPageDef MenuInitPageMultiPlayer			= { MPF_BACK_ALLOWED | MPF_HAS_BORDER | MPF_DISPLAY_MOVE_UD | MPF_DISPLAY_SELECT | MPF_DISPLAY_BACK,
													"MultiPlayer",		NumItems(MenuInitListMultiPlayer),		0, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListMultiPlayer,	NULL,	NULL	};
tGBMenuPageDef MenuInitPageOptionsMain			= { MPF_BACK_ALLOWED | MPF_HAS_BORDER | MPF_DISPLAY_MOVE_UD | MPF_DISPLAY_SELECT | MPF_DISPLAY_BACK,
													"Options",			NumItems(MenuInitListOptionsMain),		1, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListOptionsMain,	NULL,	NULL	};
tGBMenuPageDef MenuInitPageOptionsGame			= { MPF_BACK_ALLOWED | MPF_HAS_BORDER | MPF_DISPLAY_MOVE_UD | MPF_DISPLAY_SELECT | MPF_DISPLAY_BACK,
													"Options",			NumItems(MenuInitListOptionsGame),		0, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListOptionsGame,	NULL,	NULL	};
tGBMenuPageDef MenuInitPageOptionsMiniGame		= { MPF_BACK_ALLOWED | MPF_HAS_BORDER | MPF_DISPLAY_MOVE_UD | MPF_DISPLAY_SELECT | MPF_DISPLAY_BACK,
													"Options",			NumItems(MenuInitListOptionsMiniGame),	0, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListOptionsMiniGame,	NULL,	NULL	};
tGBMenuPageDef MenuInitPagePauseGame			= { MPF_BACK_ALLOWED | MPF_HAS_BORDER | MPF_DISPLAY_MOVE_UD | MPF_DISPLAY_SELECT | MPF_DISPLAY_BACK,
													"Paused",			NumItems(MenuInitListPauseGame),		1, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListPauseGame,			NULL,	NULL	};
tGBMenuPageDef MenuInitPagePauseMiniGame		= { MPF_BACK_ALLOWED | MPF_HAS_BORDER | MPF_DISPLAY_MOVE_UD | MPF_DISPLAY_SELECT | MPF_DISPLAY_BACK,
													"Paused",			NumItems(MenuInitListPauseMiniGame),	1, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListPauseMiniGame,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageEnterAttraction		= { MPF_DISPLAY_MOVE_LR | MPF_DISPLAY_SELECT,
													tGBHash::NULL_HASH,	NumItems(MenuInitListEnterAttraction),	2, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListEnterAttraction,	NULL,	NULL	};
tGBMenuPageDef MenuInitPageGotoLevel			= { MPF_DISPLAY_MOVE_LR | MPF_DISPLAY_SELECT,
													tGBHash::NULL_HASH,	NumItems(MenuInitListGotoLevel),		2, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListGotoLevel,			NULL,	NULL	};
tGBMenuPageDef MenuInitPageLevelComplete		= { MPF_HAS_BORDER | MPF_DISPLAY_MOVE_LR | MPF_DISPLAY_SELECT,
													tGBHash::NULL_HASH,	NumItems(MenuInitListLevelComplete),	2, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListLevelComplete,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageLevelFailed			= { MPF_HAS_BORDER | MPF_DISPLAY_MOVE_LR | MPF_DISPLAY_SELECT,
													tGBHash::NULL_HASH,	NumItems(MenuInitListLevelFailed),		2, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListLevelFailed,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageLevelStart			= { 0,
													tGBHash::NULL_HASH,	NumItems(MenuInitListLevelStart),		1, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListLevelStart,			NULL,	NULL	};
tGBMenuPageDef MenuInitPageInfoSign				= { 0,
													tGBHash::NULL_HASH,	NumItems(MenuInitListInfoSign),			1, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListInfoSign,			NULL,	NULL	};
tGBMenuPageDef MenuInitPageDebugLevelSelect		= { MPF_BACK_ALLOWED | MPF_HAS_BORDER | MPF_DISPLAY_MOVE_UD | MPF_DISPLAY_SELECT | MPF_DISPLAY_BACK,
													"LevelSelect",		1,										0, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListDebugLevelSelect,	NULL,	NULL	};
tGBMenuPageDef MenuInitPageKidTestLevelSelect	= { MPF_BACK_ALLOWED | MPF_HAS_BORDER | MPF_DISPLAY_MOVE_UD | MPF_DISPLAY_SELECT | MPF_DISPLAY_BACK,
													"LevelSelect",		1,										0, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListKidTestLevelSelect,	NULL,	NULL	};
tGBMenuPageDef MenuInitPageInfoInventoryOverall	= { 0,
													tGBHash::NULL_HASH,	NumItems(MenuInitListInventoryOverall),	1, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListInventoryOverall,	NULL,	NULL	};
tGBMenuPageDef MenuInitPageInfoInventoryCOS		= { 0,
													tGBHash::NULL_HASH,	NumItems(MenuInitListInventoryCOS),		1, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListInventoryCOS,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageInfoInventoryVV		= { 0,
													tGBHash::NULL_HASH,	NumItems(MenuInitListInventoryVV),		1, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListInventoryVV,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageInfoInventoryFS		= { 0,
													tGBHash::NULL_HASH,	NumItems(MenuInitListInventoryFS),		1, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListInventoryFS,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageInfoInventoryML		= { 0,
													tGBHash::NULL_HASH,	NumItems(MenuInitListInventoryML),		1, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListInventoryML,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageInfoInventoryTT		= { 0,
													tGBHash::NULL_HASH,	NumItems(MenuInitListInventoryTT),		1, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListInventoryTT,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageInfoConversation		= { 0,
													tGBHash::NULL_HASH,	NumItems(MenuInitListConversation),		0, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListConversation,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageGolfHoleIntro		= { 0,
													tGBHash::NULL_HASH,	NumItems(MenuInitListGolfHoleIntro),	1, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListGolfHoleIntro,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageGolfShotIntro		= { 0,
													tGBHash::NULL_HASH,	NumItems(MenuInitListGolfShotIntro),	1, SDFRAC_ZERO, SDFRAC(2.0f), -1,	MenuInitListGolfShotIntro,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageGolfHoleOutro		= { 0,
													tGBHash::NULL_HASH,	NumItems(MenuInitListGolfHoleOutro),	1, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListGolfHoleOutro,		NULL,	NULL	};
tGBMenuPageDef MenuInitPageMemCardChecking		= { 0,
													tGBHash::NULL_HASH,	NumItems(MenuInitListMemCardChecking),	0, SDFRAC_ZERO, SDFRAC_ZERO, -1,	MenuInitListMemCardChecking,	NULL,	NULL	};

tGBMenuPageDef* AllMenusDefs[] = {
	&MenuInitPageScholastic,			// MP_LOGO_SCHOLASTIC = 0,
	&MenuInitPageGusto,					// MP_LOGO_GUSTO,
	&MenuInitPageMain,					// MP_MAIN_MENU,
	&MenuInitPageStory,					// MP_STORY,
	&MenuInitPageArcade,				// MP_ARCADE,
	&MenuInitPageSinglePlayer,			// MP_SINGLE_PLAYER,
	&MenuInitPageMultiPlayer,			// MP_MULTI_PLAYER,
	&MenuInitPageOptionsMain,			// MP_OPTIONS_MAIN,
	&MenuInitPageOptionsGame,			// MP_OPTIONS_GAME,
	&MenuInitPageOptionsMiniGame,		// MP_OPTIONS_MINIGAME,
	&MenuInitPagePauseGame,				// MP_PAUSE_GAME,
	&MenuInitPagePauseMiniGame,			// MP_PAUSE_MINIGAME,
	&MenuInitPageEnterAttraction,		// MP_ENTER_ATTRACTION,
	&MenuInitPageGotoLevel,				// MP_GOTO_LEVEL,
	&MenuInitPageLevelComplete,			// MP_LEVEL_COMPLETE,
	&MenuInitPageLevelFailed,			// MP_LEVEL_FAILED,
	&MenuInitPageLevelStart,			// MP_LEVEL_START,
	&MenuInitPageInfoSign,				// MP_SIGN_INFO,
	&MenuInitPageDebugLevelSelect,		// MP_DEBUG_LEVEL_SELECT
	&MenuInitPageKidTestLevelSelect,	// MP_KID_TEST_LEVEL_SELECT

	&MenuInitPageInfoInventoryOverall,	// MP_INVENTORY_OVERALL
	&MenuInitPageInfoInventoryCOS,		// MP_INVENTORY_CARNIVAL_OF_SCREAMS
	&MenuInitPageInfoInventoryVV,		// MP_INVENTORY_VAMPIRE_VILLAGE
	&MenuInitPageInfoInventoryFS,		// MP_INVENTORY_FEVER_SWAMP
	&MenuInitPageInfoInventoryML,		// MP_INVENTORY_MAD_LABS
	&MenuInitPageInfoInventoryTT,		// MP_INVENTORY_TERROR_TOMBS

	&MenuInitPageInfoConversation,		// MP_CONVERSATION

#define TUTORIAL_MENUDEFS 1
	// Include the tutorial pages for the current platform
  #ifndef GGDS
	#include "gui/Menus/GBTutorialPages.h"
  #else
	#include "gui/Menus/GBTutorialPages_DS.h"
  #endif
#undef  TUTORIAL_MENUDEFS

	&MenuInitPageGolfHoleIntro,			// MP_GOLF_HOLE_INTRO
	&MenuInitPageGolfShotIntro,			// MP_GOLF_SHOT_INTRO
	&MenuInitPageGolfHoleOutro,			// MP_GOLF_HOLE_OUTRO

	&MenuInitPageMemCardChecking,		// MP_MEMCARD_CHECKING

	0									// MP_MAX
};

//=======================================================================================


Developer Documents

Download.png Download Horrorland_Developer_Documents.zip
File: Horrorland_Developer_Documents.zip (info)

There are a couple of developer documents in the same directory. Kevs todo list.docx contains a to-do list of bug fixes and game additions to be added for a build of the game referred to as Milestone 10.1. Another document, Game Notes and Requests.doc contains notes on a currently unknown build. It describes issues that have yet to be addressed at the time of writing the document and requests items to be added for most levels. It is likely that the document is also about the same milestone build referred to in the to-do list.

Local.ini

A configuration file, local.ini is likely not used by the game, as changing the values will not affect gameplay. It was probably used during development considering the names of some of the arguments listed.

Level = cos
Previous_Level = pf
Skip_Logos = 1
Straight_To_Level = 1
Display_Debug_Info = 0
Render_Object_Targets = 0
No_Death = 0
No_Sound = 0
ScreenShots = true
RG_START = -1
RG_END = -1
FRIGHTS_REQUIRED = 1
TOKENS_REQUIRED = 1
NO_TUTORIALS = 1
DS_Only_Editing = 0
Convert_DB_and_Objects = 0
Girl_Available = 0
Girl_Ticket_Number = -1
Run_From_Anywhere = 0
MultiPlayer = 0
Play_Like_A_Girl = 1

WII_SDF.txt

A configuration file that seems to handle midi and various audio controls.

#
# 
# Created 19/11/01
# Changed by Tim Pynegar 21/01/02
#
#!VERSION	:File Version
#
#!PLATFORM	:Type 	:BYTE SWAP? 	:Notes
#
#!TYPE		:Name	:Define Name	:Saved Value(DWORD)	:Notes
#
#!PARAM	:Name	:Type	:Default(Min-Max) :Flags :Define Name	:Define Value	:Notes 
#
# Flags are the following bits orred together
#
# Bit Value Meaning
# 0   1     ReqSetting.   Attribute must be set within the sound editor, the block may not be saved until the attribute is set.
# 1   2     SetOnce.      This attribute will be sent once when the effect is claimed.
# 2   4     Readonly.     A parameter that may not be modified by the code. The attribute will be initialised to the value set in the editor and may not be changed. 
# 3   8     NotPlaying.   This attribute can only be set whilst the effect is not playing or seeking. This could be used for any parameters that set up what buffer the sound will need.
# 4   16    ModuleVar.    This attribute is supported by the module and should be passed onto it. This bit would not be set for any user created parameters or any parameters that are just used in other attribute expressions.
# 5   32    String.       The parameter is a string. It may not be set within the code.
# 6   64    Script.       The parameter is a script/expression that will be evaluated if any attributes within it are modified.
# 7   128   Dependancies. Other attributes depend on this attribute. So for example if attrib A is [B*2] then attrib B will have this bit set as A depends on it.

!VERSION	:1


!PLATFORM	:WII	:1	:WII Platform - VERY IMPORTANT...that the 2nd param is a 1 to specify byte swapping

!TYPE	:ALL

# The following 3 variables must NOT be overridden in the types 
# themselves and must be the first 3 variables in the all type

!PARAM	:60 	:VOL		:NUM	:1(0-1)			:16	:	:VOL	:The volume 0 - 1.0(full)
!PARAM	:60 	:VOLCHAN	:NUM	:0(0-32)		:0	:	:VOLC	:The global volume channel this effect belongs to.
!PARAM	:60 	:VOLSCALE	:NUM	:1(0-1)			:0	:	:VOLS	:Value to allow musicians to balance volumes. This scales the volume and can not be changed by code.
!PARAM	:60 	:MINDIST	:NUM	:1(0-1000000000)	:16	:	:MIND	:Value to allow musicians to set 3D attributes.
!PARAM	:60 	:MAXDIST	:NUM	:500(0-1000000000)	:16	:	:MAXD	:Value to allow musicians to set 3D attributes.

# WAV effects
!TYPE	:WAV	:MSSND_WAV	:WAV 	:Wav files packed into .spd file, with an accompanying .spt file
!PARAM	:200	:SPDFILE	:PATH	:SPD			:4	:	:0	:Path to the .spd file
!PARAM	:200	:SPTFILE	:PATH	:SPT			:4	:	:0	:Path to the .spt file
!PARAM	:60 	:SPINDEX	:INDEX	:0			:4	:	:0	:Index into the .spd file
!PARAM	:60	:FREQUENCY	:NUM	:1			:16	:	:FREQ	:Frequency, float multiplier
!PARAM	:60	:SPEAKER	:NUM	:0(0-4)			:16	:	:SPKR	:0=TV speaker, 1~4=0~3 controller speaker

# WAVS (Software Streaming) effects
!TYPE	:WAVS	:MSSND_WAVS	:WAVS 	:Either raw 8/16bit .pcm  OR  .dsp (for ADPCM) output from DSPADPCM.exe
!PARAM	:200	:PCMFILE	:PATH	:PCM,DSP		:4	:	:0	:Path to the .pcm file, or the .dsp file
!PARAM	:60	:PCMTYPE	:NUM	:2(0-2)			:4	:	:0	:0 = 8bit, 1 = 16bit, 2 = ADPCM
!PARAM	:60	:SAMPLERATE	:NUM	:44100			:4	:	:0	:Base sample rate eg. 22050 for 22kHz
!PARAM	:60	:OFFSET		:NUM	:0(0-100000000) 	:16	:	:OFFS	:Offset into the file
!PARAM	:60	:SIZE		:NUM	:0(0-100000000)		:16	:	:SIZE	:Size from the offset
!PARAM	:60	:FREQUENCY	:NUM	:1			:16	:	:FREQ	:Frequency, float multiplier
!PARAM	:60	:SPEAKER	:NUM	:0(0-4)			:16	:	:SPKR	:0=TV speaker, 1~4=0~3 controller speaker
!PARAM	:60 	:PAN		:NUM	:0			:16	:	:PAN	:Stereo Pan Volume, -1(left) to +1(right)

# MIDI effects
!TYPE	:MIDI	:MSSND_MIDI	:MIDI 	:Midi files  .pcm/.wt/.mid
#!PARAM	:200	:PCMFILE	:PATH	:PCM			:4	:	:0	:Path to the .pcm file
!PARAM	:200	:WTFILE		:PATH	:WT			:4	:	:0	:Path to the .wt file
!PARAM	:200 	:MIDFILE	:PATH	:MID			:4	:	:0	:Path to the .mid file
!PARAM	:60	:SPEAKER	:NUM	:0(0-4)			:16	:	:SPKR	:0=TV speaker, 1~4=0~3 controller speaker
!PARAM	:60	:GROOVE		:NUM	:0			:16	:	:GRV	:Groove level

SD.reg

A registry file that was used by the developers for setting environment variables relating to game folders.


"mcardassetpath"="//2d/savegame"
"mcardiconpath"="2d/savegame/icon"
"mcardbannerpath"="2d/savegame/banner"
"mcardiconspeed"=dword:2

Leftover Workspace Files

A couple of xml files created by the Radix Settings Engine for GoosebumpsD.elf.

GoosebumpsD.rxwork

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<workspace-file xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.radixlive.com/public/schemas/radix/1.0/Workspace.xsd">
	<workspace uuid="{E07E2ADD-F889-4884-BABE-C20E57AB700C}">
		<version>1000</version>
		<display-name>Untitled Workspace</display-name>
		<aliases>
			<alias uuid="{C7041DD1-9E80-4343-9A85-B512EFB67837}">UUID_ProjectFilesGroup</alias>
		</aliases>
		<settings/>
		<files>
			<file file-tag="GoosebumpsD.elf:1">
				<path>${Workspace}/GoosebumpsD.elf</path>
			</file>
		</files>
		<group-roots>
			<group-root category-alias="UUID_ProjectFilesGroup" depth="0" root-group-tag="FilesGroup">
				<group-items>
					<file-ref>GoosebumpsD.elf:1</file-ref>
				</group-items>
			</group-root>
		</group-roots>
	</workspace>
</workspace-file>

GoosebumpsD.rxwork.rxset

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<options-file xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.radixlive.net/public/schemas/radix/1.0/Settings.xsd">
	<options uuid="{816282E9-EDE3-4A7E-8360-1BF513F9411E}">
		<notes>Generated by Radix Settings Engine</notes>
		<aliases>
			<alias uuid="{AC48B64B-BDAC-4296-9D1C-49F2CFC7A88F}">ProjectSupport</alias>
			<alias uuid="{E5BB4605-6561-44E3-9AD6-73521A5E07F3}">DocumentPersistence</alias>
		</aliases>
		<settings>
			<setting entry="defaultItem" uuid-alias="ProjectSupport">
				<simple>GoosebumpsD.elf:1</simple>
			</setting>
			<setting entry="PersistedDocuments" uuid-alias="DocumentPersistence">
				<array/>
			</setting>
			<setting entry="ActiveDocuments" uuid-alias="DocumentPersistence">
				<array/>
			</setting>
			<setting entry="expandedNodesArray" uuid-alias="ProjectSupport">
				<array>
					<simple>Workspace</simple>
					<simple>Projects</simple>
				</array>
			</setting>
			<setting entry="currentTarget" uuid-alias="ProjectSupport">
				<simple/>
			</setting>
		</settings>
	</options>
</options-file>

Unused Levels

PhilB

A mostly empty level with a dark greenish floor, a few hills and a handful of objects such as rocks and fences.

GBH-PhilB-Level-01.png

Shadow_Test

An empty level with a light blue floor that the player can walk and run around. The camera does not follow the player in this level.

GBH-ShadowTest-Level-01.png

Template

Seems to be identical to the PhilB level, with the exception that the cursor does not appear on screen in this level.

GBH-Template-Level-01.png

ELF Executables

Download.png Download Horrorland_ELF.zip
File: Horrorland_ELF.zip (info)

Two ELF files are present in the game's root directory. GoosebumpsD.elf seems to be created for debugging purposes. Goosebumps(ShowShadows).elf is another debugging executable, but it is unknown what it was made for. Neither executable will run in Dolphin, so more information about them cannot be provided at this time.