/* ScummVM - Graphic Adventure Engine
 *
 * ScummVM is the legal property of its developers, whose names
 * are too numerous to list here. Please refer to the COPYRIGHT
 * file distributed with this source distribution.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */

#pragma once
#include "eden.h"

// Note: the following data can be found in the original game's executable

// NB! this enum must match kActionCursors[] array
enum kCursors {		// offset in the executable
	cuNone = 0,	// 0x51F
	cu1 = 1,	// 0x563
	cu2 = 2,	// 0x556
	cu3 = 3,	// 0x549
	cu4 = 4,	// 0x570
	cu5 = 5,	// 0x57D
	cuHand = 6,	// 0x502
	cu7 = 7,	// 0x52C
	cu8 = 8,	// 0x58A
	cu9 = 9,	// 0x539
	cuFa = 0xF,	// 0x50F
	cuFinger = 53,	// 0x541
	ICON_HIDDEN = 0x8000
};

// NB! this enum must match EdenGame::*mouse_actions[] array
enum kActions {			// offset in the executable
	ac_ret = 27,		// 0xD651
	ac_clicplanval = 139,	// 0xE068
	ac_endFrescoes = 140,	// 0xB12A
	ac_choisir = 141,	// 0xDD68
	ac_parle_moi = 246,	// 0xBFE
	ac_adam = 247,		// 0x9E4
	ac_takeobject = 248,	// 0xE66B
	ac_putobject = 249,	// 0xE681
	ac_clictimbre = 250,	// 0xE03F
	ac_dinaparle = 251,	// 0xDF32
	ac_close_perso = 252,	// 0x13EC
	ac_generique = 260,	// 0xAF51
	ac_choixsubtitle = 261,	// 0xACBF
	ac_EdenQuit = 262,	// 0xAF6D
	ac_restart = 263,	// 0xAEE7
	ac_cancel2 = 264,	// 0xACE8
	ac_testvoice = 265,	// 0xACF8
	ac_reglervol = 266,	// 0xAB9E
	ac_load = 267,		// 0xAD76
	ac_save = 268,		// 0xAD40
	ac_cliccurstape = 269,	// 0xB004
	ac_playtape = 270,	// 0x19DB
	ac_stoptape = 271,	// 0xB095
	ac_rewindtape = 272,	// 0xB0C9
	ac_forwardtape = 273,	// 0xB0E3
	ac_confirmyes = 274,	// 0xADAE
	ac_confirmno = 275,	// 0xADC1
	ac_gotocarte = 276	// 0xE07E
};

// Indicies in to gotos[] array for World map areas
enum kTravel {			// offset in the executable
	goMo = 24,		// 0x324D
	goChamaar = 40,		// 0x3287
	goUluru = 51,		// 0x32AF
	goKoto = 65,		// 0x32E3
	goNarim = 70,		// 0x32F5
	goTamara = 75,		// 0x3307
	goCantura = 84,		// 0x3329
	goShandovra = 93,	// 0x334B
	goEmbalmers = 102,	// 0x336D
	goWhiteArch = 111,	// 0x338F
	goMoorkusLair = 120	// 0x33B1
};

const int kNumIcons = 136;
const icon_t gameIcons[kNumIcons] = {
	{90, 50, 220, 150, cu8, ac_parle_moi, 0},
	{0, 0, 319, 178, cuNone, ac_close_perso, 0},
	END_ICONS,
	{220, 16, 310, 176, cu5, ac_adam, 0},
	{0, 0, 320, 200, cu8, ac_parle_moi, 0},
	END_ICONS,
	{215, 140, 245, 176, cuHand, ac_choisir, 0},
	{245, 140, 275, 176, cuHand, ac_choisir, 1},
	{275, 140, 305, 176, cuHand, ac_choisir, 2},
	END_ICONS,
	{245, 140, 275, 176, cuHand, ac_choisir, 0},
	{275, 140, 305, 176, cuHand, ac_choisir, 1},
	END_ICONS,
	{0, 0, 320, 165, cuFa, ac_dinaparle, 0},
	{0, 165, 320, 200, cu2, ac_endFrescoes, 0},
	END_ICONS,
	{0, 176, 319, 200, ICON_HIDDEN|cu9, ac_putobject, 0},
	{120, 0, 200, 16, cuFinger, ac_clictimbre, 0},
	{266, 0, 320, 16, ICON_HIDDEN|cuFinger, ac_clicplanval, 0},
	// Inventory bar items
	// Mac version displays only 9 items, with extra margins
	{0, 178, 28, 200, cuHand, ac_takeobject, 0},	// Not on Mac
	{30, 178, 57, 200, cuHand, ac_takeobject, 0},
	{59, 178, 86, 200, cuHand, ac_takeobject, 0},
	{88, 178, 115, 200, cuHand, ac_takeobject, 0},
	{117, 178, 144, 200, cuHand, ac_takeobject, 0},
	{146, 178, 173, 200, cuHand, ac_takeobject, 0},
	{175, 178, 202, 200, cuHand, ac_takeobject, 0},
	{204, 178, 231, 200, cuHand, ac_takeobject, 0},
	{233, 178, 260, 200, cuHand, ac_takeobject, 0},
	{262, 178, 289, 200, cuHand, ac_takeobject, 0},
	{290, 178, 317, 200, cuHand, ac_takeobject, 0},	// Not on Mac
	// reserve for room's icons
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0},
	END_ICONS,
	// Menu icons
	{0, 0, 319, 15, cuFinger, ac_generique, 32},
	{8, 42, 86, 51, cuFinger, ac_choixsubtitle, 16},
	{8, 51, 86, 60, cuFinger, ac_choixsubtitle, 17},
	{8, 60, 86, 69, cuFinger, ac_choixsubtitle, 18},
	{8, 69, 86, 78, cuFinger, ac_choixsubtitle, 19},
	{8, 78, 86, 87, cuFinger, ac_choixsubtitle, 20},
	{8, 87, 86, 96, cuFinger, ac_choixsubtitle, 21},
	{16, 137, 79, 148, cuFinger, ac_EdenQuit, 34},
	{129, 137, 192, 148, cuFinger, ac_restart, 35},
	{239, 137, 302, 148, cuFinger, ac_cancel2, 36},
	{130, 112, 193, 123, cuFinger, ac_testvoice, 37},
	{114, 40, 121, 110, cuFinger, ac_reglervol, 48},
	{121, 40, 128, 110, cuFinger, ac_reglervol, 56},
	{128, 40, 136, 110, cuFinger, ac_reglervol, 49},
	{147, 40, 154, 110, cuFinger, ac_reglervol, 50},
	{154, 40, 161, 110, cuFinger, ac_reglervol, 58},
	{161, 40, 169, 110, cuFinger, ac_reglervol, 51},
	{179, 40, 186, 110, cuFinger, ac_reglervol, 52},
	{186, 40, 193, 110, cuFinger, ac_reglervol, 60},
	{193, 40, 201, 110, cuFinger, ac_reglervol, 53},
	{249, 42, 307, 51, cuFinger, ac_load, 65},
	{249, 51, 307, 60, cuFinger, ac_load, 66},
	{249, 60, 307, 69, cuFinger, ac_load, 67},
	{231, 69, 307, 78, cuFinger, ac_load, 68},
	{230, 104, 307, 112, cuFinger, ac_save, 81},
	{230, 113, 307, 121, cuFinger, ac_save, 82},
	{230, 122, 307, 130, cuFinger, ac_save, 83},
	{0, 176, 0, 185, cuFinger, ac_cliccurstape, 100},
	{149, 185, 166, 200, cuFinger, ac_playtape, 96},
	{254, 185, 269, 200, cuFinger, ac_stoptape, 97},
	{85, 185, 111, 200, cuFinger, ac_rewindtape, 98},
	{204, 185, 229, 200, cuFinger, ac_forwardtape, 99},
	{0, 0, 320, 200, cuFinger, ac_ret, 0},
	END_ICONS,
	// Yes/No dialog icons
	{129, 84, 157, 98, cuFinger, ac_confirmyes, 0},
	{165, 84, 188, 98, cuFinger, ac_confirmno, 113},
	{0, 0, 320, 200, cuFinger, ac_ret, 0},
	END_ICONS,
	// World map hotspots
	{136, 100, 160, 124, cu5, ac_gotocarte, goMo},
	{150, 55, 174, 79, cu5, ac_gotocarte, goChamaar},
	{186, 29, 210, 53, ICON_HIDDEN|cu5, ac_gotocarte, goUluru},
	{217, 20, 241, 44, ICON_HIDDEN|cu5, ac_gotocarte, goKoto},
	{248, 45, 272, 69, ICON_HIDDEN|cu5, ac_gotocarte, goNarim},
	{233, 68, 257, 92, ICON_HIDDEN|cu5, ac_gotocarte, goTamara},
	{235, 109, 259, 133, ICON_HIDDEN|cu5, ac_gotocarte, goCantura},
	{163, 137, 187, 161, ICON_HIDDEN|cu5, ac_gotocarte, goEmbalmers},
	{93, 145, 117, 169, ICON_HIDDEN|cu5, ac_gotocarte, goWhiteArch},
	{70, 39, 94, 63, ICON_HIDDEN|cu5, ac_gotocarte, goShandovra},
	{99, 8, 123, 32, ICON_HIDDEN|cu5, ac_gotocarte, goMoorkusLair},
	{0, 0, 319, 199, cuNone, ac_close_perso, 0},
	END_ICONS,
};
