scummvm/engines/wintermute/dctypes.h
lolbot-iichan 747ace78fc COMMON & WINTERMUTE: Use non-1252 for 125X games (PR 1698)
* WINTERMUTE: Add detection for "The Driller Incident"

"The Driller Incident" is a small freeware game for Wintermute,
avaliable in English and Russian: http://questzone.ru/enzi/files/1645

* WINTERMUTE: Add detection table for "One Helluva Day" demo

"One Helluva Day" is a point-and-click adventure demo in English / Czech
/ Russian.
Free download:
https://store.steampowered.com/app/603680/One_helluva_day/

* WINTERMUTE: Support CHARSET property for TT fonts

"// we don't need this anymore" was a mistake =)

Surely, most Wintermute games are either designed for 1252 language
(DE_DEU, EN_ANY, ES_ESP, FR_FRA, IT_ITA, PT_BRA), or don't use TrueType
fonts (5ma, deadcity, grotter1, grotter2, thekite, tib), or use
CHARSET=1 with UTF strings (dirtysplit, reversion1, reversion2, twc),
which meen this conversion is not needed for those games.

However, there are some games that explicitly states CHARSET=10 (driller
(RU_RUS), oknytt (RU_RUS), onehelluvaday (UNK_LANG when playing as
Russian)) and there are some games with CHARSET=1 with non-1252 in mind
(bookofgron (RU_RUS excepts 1251), carolreed4 (RU_RUS excepts 1251),
kulivocko (CZ_CZE excepts 1250)).

This fixes text in some games: bookofgron, carolreed4, driller, kulivocko,
oknytt, onehelluvaday.

* WINTERMUTE: Break savegame compatibility

sizeof(BaseFontTT) was changed, so let's break savegame compatibility

* COMMON: Add conversion tables for win1253 and win1257

* COMMON: Add string conversion from U32String back to Common::String

convertUtf32ToUtf8 code is based on Wintermute::ConvertUTF32toUTF8
convertFromU32String use convertUtf32ToUtf8 for UTF8 or lookup through
conversion table for single-byte encodings

* WINTERMUTE: Use Common::convert functions for non-UTF charsets

* WINTERMUTE: Fix whitespaces at detection tables

* WINTERMUTE: Add TODO comments
2019-06-30 16:45:46 +03:00

237 lines
4.1 KiB
C++

/* 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 2
* 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, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
/*
* This file is based on WME Lite.
* http://dead-code.org/redir.php?target=wmelite
* Copyright (c) 2011 Jan Nedoma
*/
#ifndef WINTERMUTE_DCTYPES_H
#define WINTERMUTE_DCTYPES_H
#include "common/str.h"
#include "common/ustr.h"
#include "common/list.h"
#include "common/array.h"
namespace Wintermute {
typedef Common::String AnsiString;
typedef Common::String Utf8String;
typedef Common::U32String WideString;
typedef Common::List<WideString> WideStringList;
typedef Common::List<AnsiString> AnsiStringList;
typedef Common::Array<WideString> WideStringArray;
typedef Common::Array<AnsiString> AnsiStringArray;
enum TGameState {
GAME_RUNNING,
GAME_FROZEN,
GAME_SEMI_FROZEN
};
enum TImageType {
IMG_PALETTED8,
IMG_TRUECOLOR
};
enum TTextAlign {
TAL_LEFT = 0,
TAL_RIGHT,
TAL_CENTER,
NUM_TEXT_ALIGN
};
enum TVerticalAlign {
VAL_TOP = 0,
VAL_CENTER,
VAL_BOTTOM,
NUM_VERTICAL_ALIGN
};
enum TDirection {
DI_UP = 0,
DI_UPRIGHT = 1,
DI_RIGHT = 2,
DI_DOWNRIGHT = 3,
DI_DOWN = 4,
DI_DOWNLEFT = 5,
DI_LEFT = 6,
DI_UPLEFT = 7,
NUM_DIRECTIONS = 8,
DI_NONE = 9
};
enum TEventType {
EVENT_NONE = 0,
EVENT_INIT = 1,
EVENT_SHUTDOWN = 2,
EVENT_LEFT_CLICK = 3,
EVENT_RIGHT_CLICK = 4,
EVENT_MIDDLE_CLICK = 5,
EVENT_LEFT_DBLCLICK = 6,
EVENT_PRESS = 7,
EVENT_IDLE = 8,
EVENT_MOUSE_OVER = 9,
EVENT_LEFT_RELEASE = 10,
EVENT_RIGHT_RELEASE = 11,
EVENT_MIDDLE_RELEASE = 12,
NUM_EVENTS
};
enum TUIObjectType {
UI_UNKNOWN,
UI_BUTTON,
UI_WINDOW,
UI_STATIC,
UI_EDIT,
UI_HTML,
UI_CUSTOM
};
enum TRendererState {
RSTATE_3D,
RSTATE_2D,
RSTATE_LINES,
RSTATE_NONE
};
enum TDynamicConstructor {
DYNAMIC_CONSTRUCTOR
};
enum TVideoMode {
VIDEO_WINDOW,
VIDEO_FULLSCREEN,
VIDEO_ANY
};
enum TVideoPlayback {
VID_PLAY_POS = 0,
VID_PLAY_STRETCH = 1,
VID_PLAY_CENTER = 2
};
enum TMouseEvent {
MOUSE_CLICK,
MOUSE_RELEASE,
MOUSE_DBLCLICK
};
enum TMouseButton {
MOUSE_BUTTON_LEFT,
MOUSE_BUTTON_RIGHT,
MOUSE_BUTTON_MIDDLE
};
enum TTransMgrState {
TRANS_MGR_RUNNING,
TRANS_MGR_READY
};
enum TTransitionType {
TRANSITION_NONE = 0,
TRANSITION_FADE_OUT = 1,
TRANSITION_FADE_IN = 2,
NUM_TRANSITION_TYPES
};
enum TWindowMode {
WINDOW_NORMAL,
WINDOW_EXCLUSIVE,
WINDOW_SYSTEM_EXCLUSIVE
};
enum TSFXType {
SFX_NONE,
SFX_ECHO,
SFX_REVERB
};
enum TSpriteCacheType {
CACHE_ALL,
CACHE_HALF
};
enum TTextCharset {
CHARSET_ANSI = 0,
CHARSET_DEFAULT = 1,
CHARSET_OEM = 2,
CHARSET_BALTIC = 3,
CHARSET_CHINESEBIG5 = 4,
CHARSET_EASTEUROPE = 5,
CHARSET_GB2312 = 6,
CHARSET_GREEK = 7,
CHARSET_HANGUL = 8,
CHARSET_MAC = 9,
CHARSET_RUSSIAN = 10,
CHARSET_SHIFTJIS = 11,
CHARSET_SYMBOL = 12,
CHARSET_TURKISH = 13,
CHARSET_VIETNAMESE = 14,
CHARSET_JOHAB = 15,
CHARSET_ARABIC = 16,
CHARSET_HEBREW = 17,
CHARSET_THAI = 18
};
enum TTextEncoding {
TEXT_ANSI = 0,
TEXT_UTF8 = 1,
NUM_TEXT_ENCODINGS
};
enum TTTSType {
TTS_CAPTION = 0,
TTS_TALK,
TTS_KEYPRESS
};
enum TShadowType {
SHADOW_NONE = 0,
SHADOW_SIMPLE = 1,
SHADOW_FLAT = 2,
SHADOW_STENCIL = 3
};
} // End of namespace Wintermute
#endif