ScummVM API documentation
displayinfo.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22// Interface widget display information
23
24#ifndef SAGA_DISPLAYINFO_H
25#define SAGA_DISPLAYINFO_H
26
27namespace Saga {
28
30 PanelButtonType type;
31 int xOffset;
32 int yOffset;
33 int width;
34 int height;
35 int id;
36 uint16 customType;
37 int state;
38 int upSpriteNumber;
39 int downSpriteNumber;
40 int overSpriteNumber;
41};
42
44 int width;
45 int height;
46
47 int pathStartY;
48 int sceneHeight;
49
50 int statusXOffset;
51 int statusYOffset;
52 int statusWidth;
53 int statusHeight;
54 int statusTextY;
55 int statusTextColor;
56 int statusBGColor;
57
58 int saveReminderXOffset;
59 int saveReminderYOffset;
60 int saveReminderWidth;
61 int saveReminderHeight;
62 int saveReminderFirstSpriteNumber;
63 int saveReminderNumSprites;
64
65 int leftPortraitXOffset;
66 int leftPortraitYOffset;
67 int rightPortraitXOffset;
68 int rightPortraitYOffset;
69
70 int inventoryUpButtonIndex;
71 int inventoryDownButtonIndex;
72 int inventoryRows;
73 int inventoryColumns;
74
75 int mainPanelXOffset;
76 int mainPanelYOffset;
77 int mainPanelButtonsCount;
78 PanelButton *mainPanelButtons;
79
80 int converseMaxTextWidth;
81 int converseTextHeight;
82 int converseTextLines;
83 int converseUpButtonIndex;
84 int converseDownButtonIndex;
85
86 int conversePanelXOffset;
87 int conversePanelYOffset;
88 int conversePanelButtonsCount;
89 PanelButton *conversePanelButtons;
90
91 int optionSaveFilePanelIndex;
92 int optionSaveFileSliderIndex;
93 uint32 optionSaveFileVisible;
94
95 int optionPanelXOffset;
96 int optionPanelYOffset;
97 int optionPanelButtonsCount;
98 PanelButton *optionPanelButtons;
99
100 int quitPanelXOffset;
101 int quitPanelYOffset;
102 int quitPanelWidth;
103 int quitPanelHeight;
104 int quitPanelButtonsCount;
105 PanelButton *quitPanelButtons;
106
107 int loadPanelXOffset;
108 int loadPanelYOffset;
109 int loadPanelWidth;
110 int loadPanelHeight;
111 int loadPanelButtonsCount;
112 PanelButton *loadPanelButtons;
113
114 int saveEditIndex;
115 int savePanelXOffset;
116 int savePanelYOffset;
117 int savePanelWidth;
118 int savePanelHeight;
119 int savePanelButtonsCount;
120 PanelButton *savePanelButtons;
121
122 int protectEditIndex;
123 int protectPanelXOffset;
124 int protectPanelYOffset;
125 int protectPanelWidth;
126 int protectPanelHeight;
127 int protectPanelButtonsCount;
128 PanelButton *protectPanelButtons;
129};
130
131#define ITE_CONVERSE_MAX_TEXT_WIDTH (256 - 60)
132#define ITE_CONVERSE_TEXT_HEIGHT 10
133#define ITE_CONVERSE_TEXT_LINES 4
134
135// ITE section
136static PanelButton ITE_MainPanelButtons[] = {
137 {kPanelButtonVerb, 52, 4, 57,10, kVerbITEWalkTo, kActionWalkTo, 0, 0, 1, 0},
138 {kPanelButtonVerb, 52, 15, 57,10, kVerbITELookAt, kActionLookAt, 0, 2, 3, 0},
139 {kPanelButtonVerb, 52, 26, 57,10, kVerbITEPickUp, kActionPickUp, 0, 4, 5, 0},
140 {kPanelButtonVerb, 52, 37, 57,10, kVerbITETalkTo, kActionTalkTo, 0, 0, 1, 0},
141 {kPanelButtonVerb, 110, 4, 56,10, kVerbITEOpen, kActionOpen, 0, 6, 7, 0},
142 {kPanelButtonVerb, 110,15, 56,10, kVerbITEClose, kActionClose, 0, 8, 9, 0},
143 {kPanelButtonVerb, 110,26, 56,10, kVerbITEUse, kActionUse, 0, 10, 11, 0},
144 {kPanelButtonVerb, 110,37, 56,10, kVerbITEGive, kActionGive, 0, 12, 13, 0},
145 {kPanelButtonArrow, 306,6, 8,5, -1,'U',0, 0,4,2},
146 {kPanelButtonArrow, 306,41, 8,5, 1,'D',0, 1,5,3},
147
148 {kPanelButtonInventory, 181 + 32*0,6, 27,18, 0,'-',0, 0,0,0},
149 {kPanelButtonInventory, 181 + 32*1,6, 27,18, 1,'-',0, 0,0,0},
150 {kPanelButtonInventory, 181 + 32*2,6, 27,18, 2,'-',0, 0,0,0},
151 {kPanelButtonInventory, 181 + 32*3,6, 27,18, 3,'-',0, 0,0,0},
152
153 {kPanelButtonInventory, 181 + 32*0,27, 27,18, 4,'-',0, 0,0,0},
154 {kPanelButtonInventory, 181 + 32*1,27, 27,18, 5,'-',0, 0,0,0},
155 {kPanelButtonInventory, 181 + 32*2,27, 27,18, 6,'-',0, 0,0,0},
156 {kPanelButtonInventory, 181 + 32*3,27, 27,18, 7,'-',0, 0,0,0}
157};
158
159static PanelButton ITE_MainPanelButtons_ZH[] = {
160 {kPanelButtonVerb, 53, 0, 34,16, kVerbITEWalkTo, kActionWalkTo, 0, 0,1,0},
161 {kPanelButtonVerb, 53,17, 34,16, kVerbITELookAt, kActionLookAt, 0, 2,3,0},
162 {kPanelButtonVerb, 53,34, 34,16, kVerbITEPickUp, kActionPickUp, 0, 4,5,0},
163 {kPanelButtonVerb, 92, 0, 34,16, kVerbITETalkTo, kActionTalkTo, 0, 0,1,0},
164 {kPanelButtonVerb, 92,17, 34,16, kVerbITEOpen, kActionOpen, 0, 6,7,0},
165 {kPanelButtonVerb, 92,34, 34,16, kVerbITEClose, kActionClose, 0, 8,9,0},
166 {kPanelButtonVerb, 132, 0, 34,16, kVerbITEUse, kActionUse, 0, 10,11,0},
167 {kPanelButtonVerb, 132,17, 34,16, kVerbITEGive, kActionGive, 0, 12,13,0},
168 {kPanelButtonArrow, 306,6, 8,5, -1,'U',0, 0,4,2},
169 {kPanelButtonArrow, 306,41, 8,5, 1,'D',0, 1,5,3},
170
171 {kPanelButtonInventory, 181 + 32*0,2, 27,18, 0,'-',0, 0,0,0},
172 {kPanelButtonInventory, 181 + 32*1,2, 27,18, 1,'-',0, 0,0,0},
173 {kPanelButtonInventory, 181 + 32*2,2, 27,18, 2,'-',0, 0,0,0},
174 {kPanelButtonInventory, 181 + 32*3,2, 27,18, 3,'-',0, 0,0,0},
175
176 {kPanelButtonInventory, 181 + 32*0,23, 27,18, 4,'-',0, 0,0,0},
177 {kPanelButtonInventory, 181 + 32*1,23, 27,18, 5,'-',0, 0,0,0},
178 {kPanelButtonInventory, 181 + 32*2,23, 27,18, 6,'-',0, 0,0,0},
179 {kPanelButtonInventory, 181 + 32*3,23, 27,18, 7,'-',0, 0,0,0}
180};
181
182static PanelButton ITE_ConversePanelButtons[] = {
183 {kPanelButtonConverseText, 52,6 + ITE_CONVERSE_TEXT_HEIGHT * 0, ITE_CONVERSE_MAX_TEXT_WIDTH,ITE_CONVERSE_TEXT_HEIGHT, 0,'1',0, 0,0,0},
184 {kPanelButtonConverseText, 52,6 + ITE_CONVERSE_TEXT_HEIGHT * 1, ITE_CONVERSE_MAX_TEXT_WIDTH,ITE_CONVERSE_TEXT_HEIGHT, 1,'2',0, 0,0,0},
185 {kPanelButtonConverseText, 52,6 + ITE_CONVERSE_TEXT_HEIGHT * 2, ITE_CONVERSE_MAX_TEXT_WIDTH,ITE_CONVERSE_TEXT_HEIGHT, 2,'3',0, 0,0,0},
186 {kPanelButtonConverseText, 52,6 + ITE_CONVERSE_TEXT_HEIGHT * 3, ITE_CONVERSE_MAX_TEXT_WIDTH,ITE_CONVERSE_TEXT_HEIGHT, 3,'4',0, 0,0,0},
187 {kPanelButtonArrow, 257,6, 9,6, -1,'u',0, 0,4,2},
188 {kPanelButtonArrow, 257,41, 9,6, 1,'d',0, 1,5,3},
189};
190
191static PanelButton ITE_OptionPanelButtons[] = {
192 {kPanelButtonOptionSlider, 284,19, 13,75, 0,'-',0, 0,0,0}, //slider-scroller
193 {kPanelButtonOption, 113,18, 45,17, kTextReadingSpeed, kActionOptionReadingSpeed, 0, 0,0,0}, //read speed
194 {kPanelButtonOption, 113,37, 45,17, kTextMusic, kActionOptionMusic, 0, 0,0,0}, //music
195 {kPanelButtonOption, 113,56, 45,17, kTextSound, kActionOptionSound, 0, 0,0,0}, //sound-noise
196 {kPanelButtonOption, 13,79, 135,17, kTextQuitGame, kActionOptionQuitGame, 0, 0,0,0}, //quit
197 {kPanelButtonOption, 13,98, 135,17, kTextContinuePlaying, kActionOptionContinue, 0, 0,0,0}, //continue
198 {kPanelButtonOption, 164,98, 57,17, kTextLoad, kActionOptionLoad, 0, 0,0,0}, //load
199 {kPanelButtonOption, 241,98, 57,17, kTextSave, kActionOptionSaveGame, 0, 0,0,0}, //save
200 {kPanelButtonOptionSaveFiles, 166,20, 112,74, 0,'-',0, 0,0,0}, //savefiles
201
202 {kPanelButtonOptionText,-1,4, 0,0, kTextGameOptions,'-',0, 0,0,0}, // text: game options
203 {kPanelButtonOptionText,5,18, 109,17, kTextReadingSpeed,'-',0, 0,0,0}, // text: read speed
204 {kPanelButtonOptionText,5,18, 109,17, kTextShowDialog,'-',0, 0,0,0}, // text: read speed
205 {kPanelButtonOptionText,5,37, 109,17, kTextMusic,'-',0, 0,0,0}, // text: music
206 {kPanelButtonOptionText,5,56, 109,17, kTextSound,'-',0, 0,0,0}, // text: noise
207};
208
209static PanelButton ITE_OptionPanelButtons_ZH[] = {
210 {kPanelButtonOptionSlider, 284,19, 13,75, 0,'-',0, 0,0,0}, //slider-scroller
211 {kPanelButtonOption, 113,18, 45,17, kTextReadingSpeed, kActionOptionReadingSpeed, 0, 0,0,0}, //read speed
212 {kPanelButtonOption, 113,37, 45,17, kTextMusic, kActionOptionMusic, 0, 0,0,0}, //music
213 {kPanelButtonOption, 113,56, 45,17, kTextSound, kActionOptionSound, 0, 0,0,0}, //sound-noise
214 {kPanelButtonOption, 13,79, 135,17, kTextQuitGame, kActionOptionQuitGame, 0, 0,0,0}, //quit
215 {kPanelButtonOption, 13,98, 135,17, kTextContinuePlaying, kActionOptionContinue, 0, 0,0,0}, //continue
216 {kPanelButtonOption, 164,98, 57,17, kTextLoad, kActionOptionLoad, 0, 0,0,0}, //load
217 {kPanelButtonOption, 241,98, 57,17, kTextSave, kActionOptionSaveGame, 0, 0,0,0}, //save
218 {kPanelButtonOptionSaveFiles, 166,20, 112,74, 0,'-',0, 0,0,0}, //savefiles
219
220 {kPanelButtonOptionText,9,0, 165,17, kTextGameOptions,'-',0, 0,0,0}, // text: game options
221 {kPanelButtonOptionText,2,18, 96,17, kTextReadingSpeed,'-',0, 0,0,0}, // text: read speed
222 {kPanelButtonOptionText,2,18, 80,17, kTextShowDialog,'-',0, 0,0,0}, // text: read speed
223 {kPanelButtonOptionText,2,37, 80,17, kTextMusic,'-',0, 0,0,0}, // text: music
224 {kPanelButtonOptionText,2,56, 80,17, kTextSound,'-',0, 0,0,0}, // text: noise
225};
226
227static PanelButton ITE_QuitPanelButtons[] = {
228 {kPanelButtonQuit, 11,17, 60,16, kTextQuit,kActionOptionQuit,0, 0,0,0},
229 {kPanelButtonQuit, 121,17, 60,16, kTextCancel,kActionOptionCancel,0, 0,0,0},
230 {kPanelButtonQuitText, -1,5, 0,0, kTextQuitTheGameQuestion,'-',0, 0,0,0},
231};
232
233static PanelButton ITE_LoadPanelButtons[] = {
234 {kPanelButtonLoad, 101,19, 60,16, kTextOK,kActionOptionOkay,0, 0,0,0},
235 {kPanelButtonLoadText, -1,5, 0,0, kTextLoadSuccessful,'-',0, 0,0,0},
236};
237
238static PanelButton ITE_SavePanelButtons[] = {
239 {kPanelButtonSave, 11,37, 60,16, kTextSave,kActionOptionSave,0, 0,0,0},
240 {kPanelButtonSave, 101,37, 60,16, kTextCancel,kActionOptionCancel,0, 0,0,0},
241 {kPanelButtonSaveEdit, 26,17, 119,17, 0,'-',0, 0,0,0},
242 {kPanelButtonSaveText, -1,5, 0,0, kTextEnterSaveGameName,'-',0, 0,0,0},
243};
244
245static PanelButton ITE_ProtectPanelButtons[] = {
246 {kPanelButtonProtectEdit, 26,17, 119,17, 0,'-',0, 0,0,0},
247 {kPanelButtonProtectText, -1,5, 0,0, kTextEnterProtectAnswer,'-',0, 0,0,0},
248};
249
250/*
251static PanelButton ITE_ProtectionPanelButtons[] = {
252 {kPanelButtonArrow, 0,0, 0,0, 0,'-',0, 0,0,0}, //TODO
253};*/
254
255static const GameDisplayInfo ITE_DisplayInfo = {
256 320, 200, // logical width&height
257
258 35, // scene path y offset
259 137, // scene height
260
261 0, // status x offset
262 137, // status y offset
263 320, // status width
264 11, // status height
265 2, // status text y offset
266 kITEDOSColorGreen, // status text color
267 kITEDOSColorBlack, // status BG color
268 308,137, // save reminder pos
269 12,12, // save reminder w & h
270 6, // save reminder first sprite number
271 2, // number of save reminder sprites
272
273 5, 4, // left portrait x, y offset
274 274, 4, // right portrait x, y offset
275
276 8, 9, // inventory Up & Down button indexes
277 2, 4, // inventory rows, columns
278
279 0, 148, // main panel offsets
280 ARRAYSIZE(ITE_MainPanelButtons),
281 ITE_MainPanelButtons,
282
283 ITE_CONVERSE_MAX_TEXT_WIDTH,
284 ITE_CONVERSE_TEXT_HEIGHT,
285 ITE_CONVERSE_TEXT_LINES,
286 4, 5, // converse Up & Down button indexes
287 0, 148, // converse panel offsets
288 ARRAYSIZE(ITE_ConversePanelButtons),
289 ITE_ConversePanelButtons,
290
291 8, 0, // save file index
292 8, // optionSaveFileVisible
293 8, 8, // option panel offsets
294 ARRAYSIZE(ITE_OptionPanelButtons),
295 ITE_OptionPanelButtons,
296
297 64,54, // quit panel offsets
298 192,38, // quit panel width & height
299 ARRAYSIZE(ITE_QuitPanelButtons),
300 ITE_QuitPanelButtons,
301
302 74, 53, // load panel offsets
303 172, 40, // load panel width & height
304 ARRAYSIZE(ITE_LoadPanelButtons),
305 ITE_LoadPanelButtons,
306
307 2, // save edit index
308 74, 44, // save panel offsets
309 172, 58, // save panel width & height
310 ARRAYSIZE(ITE_SavePanelButtons),
311 ITE_SavePanelButtons,
312
313 0, // protect edit index
314 74, 44, // protect panel offsets
315 172, 58, // protect panel width & height
316 ARRAYSIZE(ITE_ProtectPanelButtons),
317 ITE_ProtectPanelButtons
318};
319
320static const GameDisplayInfo ITE_DisplayInfo_ZH = {
321 320, 200, // logical width&height
322
323 35, // scene path y offset
324 137, // scene height
325
326 0, // status x offset
327 137, // status y offset
328 320, // status width
329 14, // status height
330 0, // status text y offset
331 186, // status text color
332 15, // status BG color
333 308,137, // save reminder pos
334 12,12, // save reminder w & h
335 6, // save reminder first sprite number
336 2, // number of save reminder sprites
337
338 5, 0, // left portrait x, y offset
339 274, 0, // right portrait x, y offset
340
341 8, 9, // inventory Up & Down button indexes
342 2, 4, // inventory rows, columns
343
344 0, 153, // main panel offsets
345 ARRAYSIZE(ITE_MainPanelButtons_ZH),
346 ITE_MainPanelButtons_ZH,
347
348 ITE_CONVERSE_MAX_TEXT_WIDTH,
349 ITE_CONVERSE_TEXT_HEIGHT,
350 ITE_CONVERSE_TEXT_LINES,
351 4, 5, // converse Up & Down button indexes
352 0, 148, // converse panel offsets
353 ARRAYSIZE(ITE_ConversePanelButtons),
354 ITE_ConversePanelButtons,
355
356 8, 0, // save file index
357 8, // optionSaveFileVisible
358 8, 8, // option panel offsets
359 ARRAYSIZE(ITE_OptionPanelButtons_ZH),
360 ITE_OptionPanelButtons_ZH,
361
362 64,54, // quit panel offsets
363 192,38, // quit panel width & height
364 ARRAYSIZE(ITE_QuitPanelButtons),
365 ITE_QuitPanelButtons,
366
367 74, 53, // load panel offsets
368 172, 40, // load panel width & height
369 ARRAYSIZE(ITE_LoadPanelButtons),
370 ITE_LoadPanelButtons,
371
372 2, // save edit index
373 74, 44, // save panel offsets
374 172, 58, // save panel width & height
375 ARRAYSIZE(ITE_SavePanelButtons),
376 ITE_SavePanelButtons,
377
378 0, // protect edit index
379 74, 44, // protect panel offsets
380 172, 58, // protect panel width & height
381 ARRAYSIZE(ITE_ProtectPanelButtons),
382 ITE_ProtectPanelButtons
383};
384
385#if defined(ENABLE_IHNM)
386
387// IHNM
388#define IHNM_CONVERSE_MAX_TEXT_WIDTH (485 - 8)
389#define IHNM_CONVERSE_TEXT_HEIGHT 10
390#define IHNM_CONVERSE_TEXT_LINES 11
391
392static PanelButton IHNM_MainPanelButtons[] = {
393 {kPanelButtonVerb, 106,12, 114,30, kVerbIHNMWalk, kActionWalkTo, 0, 0, 1,0},
394 {kPanelButtonVerb, 106,44, 114,30, kVerbIHNMLookAt, kActionLookAt, 0, 2, 3,0},
395 {kPanelButtonVerb, 106,76, 114,30, kVerbIHNMTake, kActionTake, 0, 4, 5,0},
396 {kPanelButtonVerb, 106,108, 114,30, kVerbIHNMUse, kActionUse, 0, 6, 7,0},
397 {kPanelButtonVerb, 223,12, 114,30, kVerbIHNMTalkTo, kActionTalkTo, 0, 8, 9,0},
398 {kPanelButtonVerb, 223,44, 114,30, kVerbIHNMSwallow, kActionSwallow, 0, 10,11,0},
399 {kPanelButtonVerb, 223,76, 114,30, kVerbIHNMGive, kActionGive, 0, 12,13,0},
400 {kPanelButtonVerb, 223,108, 114,30, kVerbIHNMPush, kActionPush, 0, 14,15,0},
401 {kPanelButtonArrow, 606,22, 20,25, -1,'[',0, 2,3,4}, // TODO: IHNM needs more states hre
402 {kPanelButtonArrow, 606,108, 20,25, 1,']',0, 6,7,8},
403
404 {kPanelButtonInventory, 357 + 64*0,18, 54,54, 0,'-',0, 0,0,0},
405 {kPanelButtonInventory, 357 + 64*1,18, 54,54, 1,'-',0, 0,0,0},
406 {kPanelButtonInventory, 357 + 64*2,18, 54,54, 2,'-',0, 0,0,0},
407 {kPanelButtonInventory, 357 + 64*3,18, 54,54, 3,'-',0, 0,0,0},
408
409 {kPanelButtonInventory, 357 + 64*0,80, 54,54, 4,'-',0, 0,0,0},
410 {kPanelButtonInventory, 357 + 64*1,80, 54,54, 5,'-',0, 0,0,0},
411 {kPanelButtonInventory, 357 + 64*2,80, 54,54, 6,'-',0, 0,0,0},
412 {kPanelButtonInventory, 357 + 64*3,80, 54,54, 7,'-',0, 0,0,0}
413};
414
415static PanelButton IHNM_ConversePanelButtons[] = {
416 {kPanelButtonConverseText, 117,18 + IHNM_CONVERSE_TEXT_HEIGHT * 0, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 0,'1',0, 0,0,0},
417 {kPanelButtonConverseText, 117,18 + IHNM_CONVERSE_TEXT_HEIGHT * 1, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 1,'2',0, 0,0,0},
418 {kPanelButtonConverseText, 117,18 + IHNM_CONVERSE_TEXT_HEIGHT * 2, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 2,'3',0, 0,0,0},
419 {kPanelButtonConverseText, 117,18 + IHNM_CONVERSE_TEXT_HEIGHT * 3, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 3,'4',0, 0,0,0},
420 {kPanelButtonConverseText, 117,18 + IHNM_CONVERSE_TEXT_HEIGHT * 4, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 4,'5',0, 0,0,0},
421 {kPanelButtonConverseText, 117,18 + IHNM_CONVERSE_TEXT_HEIGHT * 5, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 5,'6',0, 0,0,0},
422 {kPanelButtonConverseText, 117,18 + IHNM_CONVERSE_TEXT_HEIGHT * 6, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 6,'7',0, 0,0,0},
423 {kPanelButtonConverseText, 117,18 + IHNM_CONVERSE_TEXT_HEIGHT * 7, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 7,'8',0, 0,0,0},
424 {kPanelButtonConverseText, 117,18 + IHNM_CONVERSE_TEXT_HEIGHT * 8, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 8,'9',0, 0,0,0},
425 {kPanelButtonConverseText, 117,18 + IHNM_CONVERSE_TEXT_HEIGHT * 9, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 9,'10',0, 0,0,0},
426 {kPanelButtonConverseText, 117,18 + IHNM_CONVERSE_TEXT_HEIGHT * 10, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 10,'11',0, 0,0,0},
427 {kPanelButtonArrow, 606,22, 20,25, -1,'[',0, 2,3,4}, // TODO: IHNM needs more states hre
428 {kPanelButtonArrow, 606,108, 20,25, 1,']',0, 6,7,8},
429};
430
431static PanelButton IHNM_OptionPanelButtons[] = {
432 {kPanelButtonOptionSlider, 421,16, 16,138, 0,'-',0, 0,0,0}, //slider-scroller
433 {kPanelButtonOptionText,11,30, 139,21, kTextReadingSpeed,'-',0, 0,0,0}, // text: read speed
434 {kPanelButtonOptionText,11,55, 139,21, kTextMusic,'-',0, 0,0,0}, // text: music
435 {kPanelButtonOptionText,11,80, 139,21, kTextSound,'-',0, 0,0,0}, // text: noise
436 {kPanelButtonOptionText,11,105, 139,21, kTextVoices,'-',0, 0,0,0}, // text: voices
437 {kPanelButtonOption, 154,30, 79,23, kTextReadingSpeed,kActionOptionReadingSpeed,0, 0,0,0}, //read speed
438 {kPanelButtonOption, 154,55, 79,23, kTextMusic,kActionOptionMusic,0, 0,0,0}, //music
439 {kPanelButtonOption, 154,80, 79,23, kTextSound,kActionOptionSound,0, 0,0,0}, //sound-noise
440 {kPanelButtonOption, 154,105,79,23, kTextVoices,kActionOptionVoices,0, 0,0,0}, //voices
441 {kPanelButtonOption, 20,150, 200,25, kTextQuitGame,kActionOptionQuitGame,0, 0,0,0}, //quit
442 {kPanelButtonOption, 20,178, 200,25, kTextContinuePlaying,kActionOptionContinue,0, 0,0,0}, //continue
443 {kPanelButtonOptionSaveFiles, 244,18, 170,138, 0,'-',0, 0,0,0}, //savefiles
444 {kPanelButtonOption, 243,163, 79,23, kTextLoad,kActionOptionLoad,0, 0,0,0}, //load
445 {kPanelButtonOption, 334,163, 79,23, kTextSave,kActionOptionSaveGame,0, 0,0,0}, //save
446};
447
448static PanelButton IHNM_QuitPanelButtons[] = {
449 {kPanelButtonQuit, 26,80, 80,25, kTextQuit,kActionOptionQuit,0, 0,0,0},
450 {kPanelButtonQuit, 156,80, 80,25, kTextCancel,kActionOptionCancel,0, 0,0,0},
451 {kPanelButtonQuitText, -1,30, 0,0, kTextQuitTheGameQuestion,'-',0, 0,0,0},
452};
453
454static PanelButton IHNM_LoadPanelButtons[] = {
455 {kPanelButtonLoad, 26,80, 80,25, kTextOK,kActionOptionOkay,0, 0,0,0},
456 {kPanelButtonLoad, 156,80, 80,25, kTextCancel,kActionOptionCancel,0, 0,0,0},
457 {kPanelButtonLoadText, -1,30, 0,0, kTextLoadSavedGame,'-',0, 0,0,0},
458};
459
460static PanelButton IHNM_SavePanelButtons[] = {
461 {kPanelButtonSave, 25,79, 80,25, kTextSave,kActionOptionSave,0, 0,0,0},
462 {kPanelButtonSave, 155,79, 80,25, kTextCancel,kActionOptionCancel,0, 0,0,0},
463 {kPanelButtonSaveEdit, 22,56, 216,17, 0,'-',0, 0,0,0},
464 {kPanelButtonSaveText, -1,30, 0,0, kTextEnterSaveGameName,'-',0, 0,0,0},
465};
466
467#endif
468
469#ifdef ENABLE_IHNM
470
471static const GameDisplayInfo IHNM_DisplayInfo = {
472 640, 480, // logical width&height
473
474 0, // scene path y offset
475 304, // scene height
476
477 0, // status x offset
478 304, // status y offset
479 616, // status width
480 24, // status height
481 8, // status text y offset
482 253, // status text color
483 250, // status BG color
484 616, 304, // save reminder pos
485 24, 24, // save reminder w&h
486 0, // save reminder first sprite number
487 16, // number of save reminder sprites
488
489 11, 12, // left portrait x, y offset
490 -1, -1, // right portrait x, y offset
491
492 8, 9, // inventory Up & Down button indexes
493 2, 4, // inventory rows, columns
494
495 0, 328, // main panel offsets
496 ARRAYSIZE(IHNM_MainPanelButtons),
497 IHNM_MainPanelButtons,
498
499 IHNM_CONVERSE_MAX_TEXT_WIDTH,
500 IHNM_CONVERSE_TEXT_HEIGHT,
501 IHNM_CONVERSE_TEXT_LINES,
502 11, 12, // converse Up & Down button indexes
503 0, 328, // converse panel offsets
504 ARRAYSIZE(IHNM_ConversePanelButtons),
505 IHNM_ConversePanelButtons,
506
507 11, 0, // save file index
508 15, // optionSaveFileVisible
509 92, 46, // option panel offsets
510 ARRAYSIZE(IHNM_OptionPanelButtons),
511 IHNM_OptionPanelButtons,
512
513 190,94, // quit panel offsets
514 260,115, // quit panel width & height
515 ARRAYSIZE(IHNM_QuitPanelButtons),
516 IHNM_QuitPanelButtons,
517
518 190, 94, // load panel offsets
519 260, 115, // load panel width & height
520 ARRAYSIZE(IHNM_LoadPanelButtons),
521 IHNM_LoadPanelButtons,
522
523 2, // save edit index
524 190, 94, // save panel offsets
525 260, 115, // save panel width & height
526 ARRAYSIZE(IHNM_SavePanelButtons),
527 IHNM_SavePanelButtons,
528
529 // No protection panel in IHNM
530 -1, // protect edit index
531 0, 0, // protect panel offsets
532 0, 0, // protect panel width & height
533 ARRAYSIZE(IHNM_SavePanelButtons),
534 IHNM_SavePanelButtons
535};
536#endif
537
538} // End of namespace Saga
539
540#endif
#define ARRAYSIZE(x)
Definition: util.h:114
Definition: actor.h:34
Definition: displayinfo.h:43
Definition: displayinfo.h:29