mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-14 13:50:13 +00:00
54562554f9
Refactoring, no changes in behaviour.
1816 lines
58 KiB
C++
1816 lines
58 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.
|
|
*
|
|
*/
|
|
|
|
#ifndef LASTEXPRESS_SHARED_H
|
|
#define LASTEXPRESS_SHARED_H
|
|
|
|
#include "common/func.h"
|
|
|
|
namespace LastExpress {
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Sound
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
enum SoundTag {
|
|
kSoundTagNone = 0,
|
|
kSoundTagAmbient = 1,
|
|
kSoundTagOldAmbient = 2,
|
|
kSoundTagWalla = 3,
|
|
kSoundTagOldWalla = 4,
|
|
kSoundTagConcert = 5,
|
|
// 6 is unused
|
|
kSoundTagLink = 7,
|
|
kSoundTagOldLink = 8,
|
|
kSoundTagNIS = 9,
|
|
kSoundTagOldNIS = 10,
|
|
kSoundTagIntro = 11,
|
|
// 12 is unused
|
|
kSoundTagMenu = 13,
|
|
kSoundTagOldMenu = 14,
|
|
kSoundTagCredits = 15,
|
|
kSoundTagFirstNormal = 16
|
|
// every normal sound gets its own tag from an incrementing counter
|
|
// initialized as kSoundTagFirstNormal,
|
|
// so tags can have values not covered by this enum
|
|
};
|
|
|
|
/*
|
|
These are the flags used by the original game
|
|
to keep track of sound entry status.
|
|
|
|
They are directly exposed via savefiles,
|
|
so we should be aware of them
|
|
even though we don't use some of them internally.
|
|
|
|
Sound playback is asynchronous.
|
|
We have threads and mutexes for synchronization,
|
|
DOS games have main code and IRQ/interrupt handlers instead,
|
|
some flags come in pairs to deal with this:
|
|
the main code sets kSoundFlagXxxRequested as a signal
|
|
to the interrupt handler, the interrupt handler processes it
|
|
(e.g. stops using the associated buffer for Close and Mute requests)
|
|
and sets the corresponding result flag. The main code can proceed then
|
|
(e.g. release the associated buffer).
|
|
|
|
The original game has a limited number of sound buffers (namely, 6)
|
|
(plus 16 versions of ADPCM decoder in assembly language,
|
|
one for every non-zero volume, so I suppose the performance was an issue).
|
|
The original game has also many events that could happen in different areas
|
|
of the train at the same time, some of them are synchronized via the sound
|
|
(kActionEndSound). To deal with it, the original game uses kSoundFlagMute:
|
|
muted sounds don't have their own buffer, don't participate in mixing the channels,
|
|
but the interrupt handler still tracks their progress.
|
|
Non-audible sounds (e.g. because the corresponding event goes on in another car)
|
|
are always muted; if the number of audible sounds exceeds the number of buffers,
|
|
least-priority sounds are muted as well (the priority is the sum of a static
|
|
constant from the entry constructor and the current volume).
|
|
|
|
Normally the sound duration is read from (one of the fields
|
|
in the header of) the associated file. However, if the sound entry
|
|
is started as muted, the buffer is not allocated and no data are read;
|
|
in this case, the duration is estimated from file size.
|
|
Since HPF archives store all sizes as counts of 0x800-byte blocks,
|
|
this loses some precision, but nothing to really care about.
|
|
If a started-as-muted sound is unmuted later (Cath enters the car
|
|
where a dialog takes place), the exact duration is loaded from the file;
|
|
kSoundFlagHeaderProcessed says that the duration is exact.
|
|
|
|
We have more sound channels available, we are not so limited
|
|
by the performance, and we lose some control of how exactly the backend
|
|
processes the sound as a payment for portability, so we can afford
|
|
to just mix the silence without special processing of muted entries.
|
|
*/
|
|
enum SoundFlag {
|
|
kSoundVolumeEntityDefault = 0xFFFFFFFF, // special value for SoundManager::playSound; choose volume based on distance to the entity
|
|
|
|
kVolumeNone = 0x0,
|
|
kVolume1 = 0x1,
|
|
kVolume2 = 0x2,
|
|
kVolume3 = 0x3,
|
|
kVolume4 = 0x4,
|
|
kVolume5 = 0x5,
|
|
kVolume6 = 0x6,
|
|
kVolume7 = 0x7,
|
|
kVolume8 = 0x8,
|
|
kVolume9 = 0x9,
|
|
kVolume10 = 0xA,
|
|
kVolume11 = 0xB,
|
|
kVolume12 = 0xC,
|
|
kVolume13 = 0xD,
|
|
kVolume14 = 0xE,
|
|
kVolume15 = 0xF,
|
|
kVolumeFull = 0x10,
|
|
|
|
kSoundVolumeMask = 0x1F,
|
|
|
|
kSoundFlagPlayRequested = 0x20,
|
|
kSoundFlagPlaying = 0x40, // IRQ handler has seen kSoundFlagPlayRequested and has started the playback
|
|
kSoundFlagMuteRequested = 0x80,
|
|
kSoundFlagMuteProcessed = 0x100, // IRQ handler has seen kSoundFlagMuteRequested
|
|
kSoundFlagMute = kSoundFlagMuteRequested | kSoundFlagMuteProcessed,
|
|
kSoundFlagCloseRequested = 0x200, // close requested, waiting for IRQ handler to confirm
|
|
kSoundFlagClosed = 0x400, // IRQ handler has seen kSoundFlagClosing and is completely done with this sound
|
|
kSoundFlagCloseOnDataEnd = 0x800, // used as the opposite of kSoundFlagLooped
|
|
kSoundFlagLooped = 0x1000,
|
|
kSoundFlagCyclicBuffer = 0x2000, // when the decoder reaches the end of buffer, the decoder should continue from the beginning of buffer
|
|
kSoundFlagHasUnreadData = 0x4000, // stream has more data
|
|
kSoundFlagDelayedActivate = 0x8000, // start playing at _activateTime
|
|
kSoundFlagHasLinkAfter = 0x10000, // _linkAfter is valid and should be activated after this sound; used by xxx.NIS sounds for xxx.LNK
|
|
kSoundFlagHasSubtitles = 0x20000,
|
|
kSoundFlagPaused = 0x40000, // IRQ handler has seen kSoundFlagPauseRequested and does not use the buffer anymore
|
|
kSoundFlagFixedVolume = 0x80000, // Turns off the logic of volume adjusting for entity-related sounds when distance to entity is changed
|
|
kSoundFlagVolumeChanging = 0x100000, // smooth changing of the volume is in progress
|
|
kSoundFlagHeaderProcessed = 0x200000, // count of blocks is the accurate value from the header
|
|
kSoundFlagPauseRequested = 0x400000, // used when the reader needs to change the buffer
|
|
kSoundFlagDecodeStall = 0x800000, // the decoder has stopped because the reader is too slow and has not yet provided further data
|
|
|
|
kSoundTypeNormal = 0x0000000, // everything not included in any specific category
|
|
kSoundTypeAmbient = 0x1000000, // train sounds, steam, wind, restaurant sounds
|
|
kSoundTypeConcert = 0x2000000, // 1917.LNK
|
|
kSoundTypeMenu = 0x3000000, // menu screen, blinking egg after time travel; excluded from savefiles
|
|
kSoundTypeLink = 0x4000000, // xxx.LNK linked after NIS sound, except for 1917.LNK
|
|
kSoundTypeIntro = 0x5000000, // intro at game start before showing the menu
|
|
kSoundTypeWalla = 0x6000000, // LOOP8A.SND by kEntityTables2
|
|
kSoundTypeNIS = 0x7000000, // special entry managed by NIS code
|
|
|
|
kSoundTypeMask = 0x7000000,
|
|
|
|
kSoundFlagKeepAfterFinish = 0x8000000, // don't free the entry when it has stopped playing; used for kSoundTypeNIS
|
|
kSoundFlagDecodeError = 0x20000000, // error in compressed stream
|
|
kSoundFlagFading = 0x40000000, // prevents attempts to unfade once fade is requested
|
|
kSoundFlagUnmuteRequested = 0x80000000 // purely informational
|
|
};
|
|
|
|
enum AmbientSoundState {
|
|
kAmbientSoundEnabled = 1,
|
|
kAmbientSoundSteam = 2
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Time values
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
// Time is measured in ticks, with 15 ticks per second. One minute is 900
|
|
// ticks, one hour is 54,000 ticks, and one day is 1,296,000 ticks.
|
|
|
|
enum TimeValue {
|
|
kTimeNone = 0,
|
|
kTime5933 = 5933,
|
|
|
|
kTimeCityParis = 1037700, // Day 1, 19:13
|
|
kTime1039500 = 1039500, // Day 1, 19:15
|
|
kTimeStartGame = 1061100, // Day 1, 19:39
|
|
|
|
// Chapter 1
|
|
kTimeChapter1 = 1062000, // Day 1, 19:40
|
|
kTime1071000 = 1071000, // Day 1, 19:50
|
|
kTimeParisEpernay = 1075500, // Day 1, 19:55
|
|
kTime1080000 = 1080000, // Day 1, 20:00
|
|
kTime1084500 = 1084500, // Day 1, 20:05
|
|
kTime1089000 = 1089000, // Day 1, 20:10
|
|
kTime1093500 = 1093500, // Day 1, 20:15
|
|
kTime1094400 = 1094400, // Day 1, 20:16
|
|
kTime1096200 = 1096200, // Day 1, 20:18
|
|
kTime1098000 = 1098000, // Day 1, 20:20
|
|
kTime1102500 = 1102500, // Day 1, 20:25
|
|
kTime1107000 = 1107000, // Day 1, 20:30
|
|
kTime1111500 = 1111500, // Day 1, 20:35
|
|
kTime1120500 = 1120500, // Day 1, 20:45
|
|
kTime1125000 = 1125000, // Day 1, 20:50
|
|
kTime1134000 = 1134000, // Day 1, 21:00
|
|
kTime1138500 = 1138500, // Day 1, 21:05
|
|
kTime1143000 = 1143000, // Day 1, 21:10
|
|
kTimeEnterEpernay = 1147500, // Day 1, 21:15
|
|
kTimeCityEpernay = 1148400, // Day 1, 21:16
|
|
kTimeExitEpernay = 1150200, // Day 1, 21:18
|
|
kTime1156500 = 1156500, // Day 1, 21:25
|
|
kTime1161000 = 1161000, // Day 1, 21:30
|
|
kTime1162800 = 1162800, // Day 1, 21:32
|
|
kTime1165500 = 1165500, // Day 1, 21:35
|
|
kTime1167300 = 1167300, // Day 1, 21:37
|
|
kTimeEnterChalons = 1170000, // Day 1, 21:40
|
|
kTimeCityChalons = 1170900, // Day 1, 21:41
|
|
kTimeExitChalons = 1173600, // Day 1, 21:44
|
|
kTime1174500 = 1174500, // Day 1, 21:45
|
|
kTime1179000 = 1179000, // Day 1, 21:50
|
|
kTime1183500 = 1183500, // Day 1, 21:55
|
|
kTime1184400 = 1184400, // Day 1, 21:56
|
|
kTime1188000 = 1188000, // Day 1, 22:00
|
|
kTime1189800 = 1189800, // Day 1, 22:02
|
|
kTime1192500 = 1192500, // Day 1, 22:05
|
|
kTime1197000 = 1197000, // Day 1, 22:10
|
|
kTime1201500 = 1201500, // Day 1, 22:15
|
|
kTime1206000 = 1206000, // Day 1, 22:20
|
|
kTime1215000 = 1215000, // Day 1, 22:30
|
|
kTime1224000 = 1224000, // Day 1, 22:40
|
|
kTime1225800 = 1225800, // Day 1, 22:42
|
|
kTimeCityBarLeDuc = 1228500, // Day 1, 22:45
|
|
kTimeExitBarLeDuc = 1231200, // Day 1, 22:48
|
|
kTime1233000 = 1233000, // Day 1, 22:50
|
|
kTime1242000 = 1242000, // Day 1, 23:00
|
|
kTime1260000 = 1260000, // Day 1, 23:20
|
|
kTimeCityNancy = 1303200, // Day 2, 00:08
|
|
kTimeExitNancy = 1307700, // Day 2, 00:13
|
|
kTime1323000 = 1323000, // Day 2, 00:30
|
|
kTimeCityLuneville = 1335600, // Day 2, 00:44
|
|
kTimeExitLuneville = 1338300, // Day 2, 00:47
|
|
kTimeCityAvricourt = 1359900, // Day 2, 01:11
|
|
kTimeExitAvricourt = 1363500, // Day 2, 01:15
|
|
kTimeCityDeutschAvricourt = 1367100, // Day 2, 01:19
|
|
kTimeExitDeutschAvricourt = 1370700, // Day 2, 01:23
|
|
kTime1386000 = 1386000, // Day 2, 01:40
|
|
kTimeBedTime = 1404000, // Day 2, 02:00
|
|
kTime1417500 = 1417500, // Day 2, 02:15
|
|
kTimeEnterStrasbourg = 1424700, // Day 2, 02:23
|
|
kTime1449000 = 1449000, // Day 2, 02:50
|
|
kTime1458000 = 1458000, // Day 2, 03:00
|
|
kTime1485000 = 1485000, // Day 2, 03:30
|
|
kTime1489500 = 1489500, // Day 2, 03:35
|
|
kTimeCityStrasbourg = 1490400, // Day 2, 03:36
|
|
kTime1492200 = 1492200, // Day 2, 03:38
|
|
kTimeExitStrasbourg = 1493100, // Day 2, 03:39
|
|
kTimeChapter1End = 1494000, // Day 2, 03:40
|
|
kTime1503000 = 1503000, // Day 2, 03:50
|
|
kTime1512000 = 1512000, // Day 2, 04:00
|
|
kTimeCityBadenOos = 1539000, // Day 2, 04:30
|
|
kTimeExitBadenOos = 1541700, // Day 2, 04:33
|
|
kTimeCityKarlsruhe = 1563300, // Day 2, 04:57
|
|
kTimeCityStuttgart = 1656000, // Day 2, 06:40
|
|
kTimeChapter1End2 = 1647000, // Day 2, 06:30
|
|
kTimeChapter1End3 = 1674000, // Day 2, 07:00
|
|
kTimeCityGeislingen = 1713600, // Day 2, 07:44
|
|
kTime1714500 = 1714500, // Day 2, 07:45
|
|
kTimeCityUlm = 1739700, // Day 2, 08:13
|
|
|
|
// Chapter 2
|
|
kTimeChapter2 = 1750500, // Day 2, 08:25
|
|
kTime1759500 = 1759500, // Day 2, 08:35
|
|
kTime1755000 = 1755000, // Day 2, 08:30
|
|
kTime1764000 = 1764000, // Day 2, 08:40
|
|
kTime1768500 = 1768500, // Day 2, 08:45
|
|
kTime1773000 = 1773000, // Day 2, 08:50
|
|
kTime1777500 = 1777500, // Day 2, 08:55
|
|
kTime1782000 = 1782000, // Day 2, 09:00
|
|
kTime1786500 = 1786500, // Day 2, 09:05
|
|
kTime1791000 = 1791000, // Day 2, 09:10
|
|
kTime1800000 = 1800000, // Day 2, 09:20
|
|
kTime1801800 = 1801800, // Day 2, 09:22
|
|
kTime1806300 = 1806300, // Day 2, 09:27
|
|
kTime1809000 = 1809000, // Day 2, 09:30
|
|
kTimeCityAugsburg = 1809900, // Day 2, 09:31
|
|
kTime1813500 = 1813500, // Day 2, 09:35
|
|
kTime1818000 = 1818000, // Day 2, 09:40
|
|
kTime1818900 = 1818900, // Day 2, 09:41
|
|
kTime1820700 = 1820700, // Day 2, 09:43
|
|
kTime1822500 = 1822500, // Day 2, 09:45
|
|
kTime1827000 = 1827000, // Day 2, 09:50
|
|
kTime1831500 = 1831500, // Day 2, 09:55
|
|
kTime1836000 = 1836000, // Day 2, 10:00
|
|
kTime1845000 = 1845000, // Day 2, 10:10
|
|
kTime1849500 = 1849500, // Day 2, 10:15
|
|
kTimeCityMunich = 1852200, // Day 2, 10:18
|
|
|
|
// Chapter 3
|
|
kTimeChapter3 = 1944000, // Day 2, 12:00
|
|
kTime1953000 = 1953000, // Day 2, 12:10
|
|
kTime1966500 = 1966500, // Day 2, 12:25
|
|
kTime1969200 = 1969200, // Day 2, 12:28
|
|
kTime1971000 = 1971000, // Day 2, 12:30
|
|
kTimeEnterSalzbourg = 1982700, // Day 2, 12:43
|
|
kTime1983600 = 1983600, // Day 2, 12:44
|
|
kTimeCitySalzbourg = 1984500, // Day 2, 12:45
|
|
kTime1989000 = 1989000, // Day 2, 12:50
|
|
kTimeExitSalzbourg = 1989900, // Day 2, 12:51
|
|
kTime1993500 = 1993500, // Day 2, 12:55
|
|
kTime1998000 = 1998000, // Day 2, 13:00
|
|
kTime2002500 = 2002500, // Day 2, 13:05
|
|
kTime2011500 = 2011500, // Day 2, 13:15
|
|
kTime2016000 = 2016000, // Day 2, 13:20
|
|
kTime2020500 = 2020500, // Day 2, 13:25
|
|
kTime2025000 = 2025000, // Day 2, 13:30
|
|
kTime2034000 = 2034000, // Day 2, 13:40
|
|
kTime2038500 = 2038500, // Day 2, 13:45
|
|
kTime2040300 = 2040300, // Day 2, 13:47
|
|
kTime2043000 = 2043000, // Day 2, 13:50
|
|
kTimeEnterAttnangPuchheim = 2047500, // Day 2, 13:55
|
|
kTimeCityAttnangPuchheim = 2049300, // Day 2, 13:57
|
|
kTime2052000 = 2052000, // Day 2, 14:00
|
|
kTimeExitAttnangPuchheim = 2052900, // Day 2, 14:01
|
|
kTime2056500 = 2056500, // Day 2, 14:05
|
|
kTime2061000 = 2061000, // Day 2, 14:10
|
|
kTime2062800 = 2062800, // Day 2, 14:12
|
|
kTime2065500 = 2065500, // Day 2, 14:15
|
|
kTime2070000 = 2070000, // Day 2, 14:20
|
|
kTimeEnterWels = 2073600, // Day 2, 14:24
|
|
kTimeCityWels = 2075400, // Day 2, 14:26
|
|
kTime2079000 = 2079000, // Day 2, 14:30
|
|
kTimeExitWels = 2079900, // Day 2, 14:31
|
|
kTime2083500 = 2083500, // Day 2, 14:35
|
|
kTime2088000 = 2088000, // Day 2, 14:40
|
|
kTime2088900 = 2088900, // Day 2, 14:41
|
|
kTime2092500 = 2092500, // Day 2, 14:45
|
|
kTime2097000 = 2097000, // Day 2, 14:50
|
|
kTimeEnterLinz = 2099700, // Day 2, 14:53
|
|
kTimeCityLinz = 2101500, // Day 2, 14:55
|
|
kTimeExitLinz = 2105100, // Day 2, 14:59
|
|
kTime2106000 = 2106000, // Day 2, 15:00
|
|
kTime2110500 = 2110500, // Day 2, 15:05
|
|
kTime2115000 = 2115000, // Day 2, 15:10
|
|
kTime2117700 = 2117700, // Day 2, 15:13
|
|
kTime2119500 = 2119500, // Day 2, 15:15
|
|
kTime2124000 = 2124000, // Day 2, 15:20
|
|
kTime2133000 = 2133000, // Day 2, 15:30
|
|
kTime2138400 = 2138400, // Day 2, 15:36
|
|
kTime2142000 = 2142000, // Day 2, 15:40
|
|
kTime2146500 = 2146500, // Day 2, 15:45
|
|
kTime2147400 = 2147400, // Day 2, 15:46
|
|
kTime2151000 = 2151000, // Day 2, 15:50
|
|
kTimeCityAmstetten = 2154600, // Day 2, 15:54
|
|
kTime2155500 = 2155500, // Day 2, 15:55
|
|
kTime2160000 = 2160000, // Day 2, 16:00
|
|
kTime2169000 = 2169000, // Day 2, 16:10
|
|
kTime2173500 = 2173500, // Day 2, 16:15
|
|
kTime2187000 = 2187000, // Day 2, 16:30
|
|
kTime2182500 = 2182500, // Day 2, 16:25
|
|
kTime2196000 = 2196000, // Day 2, 16:40
|
|
kTime2200500 = 2200500, // Day 2, 16:45
|
|
kTime2205000 = 2205000, // Day 2, 16:50
|
|
kTime2214000 = 2214000, // Day 2, 17:00
|
|
kTime2218500 = 2218500, // Day 2, 17:05
|
|
kTime2223000 = 2223000, // Day 2, 17:10
|
|
kTime2227500 = 2227500, // Day 2, 17:15
|
|
kTime2241000 = 2241000, // Day 2, 17:30
|
|
kTime2248200 = 2248200, // Day 2, 17:38
|
|
kTime2250000 = 2250000, // Day 2, 17:40
|
|
kTime2254500 = 2254500, // Day 2, 17:45
|
|
kTime2259000 = 2259000, // Day 2, 17:50
|
|
kTime2263500 = 2263500, // Day 2, 17:55
|
|
kTime2266200 = 2266200, // Day 2, 17:58
|
|
kTimeCityVienna = 2268000, // Day 2, 18:00
|
|
|
|
// Chapter 4
|
|
kTime2349000 = 2349000, // Day 2, 19:30
|
|
kTimeChapter4 = 2353500, // Day 2, 19:35
|
|
kTime2354400 = 2354400, // Day 2, 19:36
|
|
kTime2356200 = 2356200, // Day 2, 19:38
|
|
kTime2358000 = 2358000, // Day 2, 19:40
|
|
kTime2360700 = 2360700, // Day 2, 19:43
|
|
kTime2362500 = 2362500, // Day 2, 19:45
|
|
kTime2361600 = 2361600, // Day 2, 19:44
|
|
kTime2367000 = 2367000, // Day 2, 19:50
|
|
kTime2370600 = 2370600, // Day 2, 19:54
|
|
kTime2378700 = 2378700, // Day 2, 20:03
|
|
kTimeEnterPoszony = 2381400, // Day 2, 20:06
|
|
kTimeCityPoszony = 2383200, // Day 2, 20:08
|
|
kTime2385000 = 2385000, // Day 2, 20:10
|
|
kTimeExitPoszony = 2386800, // Day 2, 20:12
|
|
kTime2389500 = 2389500, // Day 2, 20:15
|
|
kTime2394000 = 2394000, // Day 2, 20:20
|
|
kTime2398500 = 2398500, // Day 2, 20:25
|
|
kTime2403000 = 2403000, // Day 2, 20:30
|
|
kTime2407500 = 2407500, // Day 2, 20:35
|
|
kTime2410200 = 2410200, // Day 2, 20:38
|
|
kTime2412000 = 2412000, // Day 2, 20:40
|
|
kTime2414700 = 2414700, // Day 2, 20:43
|
|
kTime2415600 = 2415600, // Day 2, 20:44
|
|
kTimeEnterGalanta = 2416500, // Day 2, 20:45
|
|
kTimeCityGalanta = 2418300, // Day 2, 20:47
|
|
kTime2421000 = 2421000, // Day 2, 20:50
|
|
kTimeExitGalanta = 2421900, // Day 2, 20:51
|
|
kTime2422800 = 2422800, // Day 2, 20:52
|
|
kTime2428200 = 2428200, // Day 2, 20:58
|
|
kTime2425500 = 2425500, // Day 2, 20:55
|
|
kTime2430000 = 2430000, // Day 2, 21:00
|
|
kTime2434500 = 2434500, // Day 2, 21:05
|
|
kTime2439000 = 2439000, // Day 2, 21:10
|
|
kTime2443500 = 2443500, // Day 2, 21:15
|
|
kTime2448000 = 2448000, // Day 2, 21:20
|
|
kTime2452500 = 2452500, // Day 2, 21:25
|
|
kTime2455200 = 2455200, // Day 2, 21:28
|
|
kTime2457000 = 2457000, // Day 2, 21:30
|
|
kTime2466000 = 2466000, // Day 2, 21:40
|
|
kTime2470500 = 2470500, // Day 2, 21:45
|
|
kTime2475000 = 2475000, // Day 2, 21:50
|
|
kTime2479500 = 2479500, // Day 2, 21:55
|
|
kTime2484000 = 2484000, // Day 2, 22:00
|
|
kTime2488500 = 2488500, // Day 2, 22:05
|
|
kTime2493000 = 2493000, // Day 2, 22:10
|
|
kTime2506500 = 2506500, // Day 2, 22:25
|
|
kTime2507400 = 2507400, // Day 2, 22:26
|
|
kTime2511000 = 2511000, // Day 2, 22:30
|
|
kTime2511900 = 2511900, // Day 2, 22:31
|
|
kTime2517300 = 2517300, // Day 2, 22:37
|
|
kTime2519100 = 2519100, // Day 2, 22:39
|
|
kTime2520000 = 2520000, // Day 2, 22:40
|
|
kTime2533500 = 2533500, // Day 2, 22:55
|
|
kTime2535300 = 2535300, // Day 2, 22:57
|
|
kTime2538000 = 2538000, // Day 2, 23:00
|
|
kTimeCityBudapest = 2551500, // Day 2, 23:15
|
|
|
|
// Chapter 5
|
|
kTimeChapter5 = 2844000, // Day 3, 04:40
|
|
kTimeTrainStopped = 2898000, // Day 3, 05:40
|
|
kTime2907000 = 2907000, // Day 3, 05:50
|
|
kTime2916000 = 2916000, // Day 3, 06:00
|
|
kTime2934000 = 2934000, // Day 3, 06:20
|
|
kTimeTrainStopped2 = 2943000, // Day 3, 06:30
|
|
kTime2949300 = 2949300, // Day 3, 06:37
|
|
kTimeCityBelgrade = 2952000, // Day 3, 06:40
|
|
kTime2983500 = 2983500, // Day 3, 07:15
|
|
kTimeCityNish = 3205800, // Day 3, 11:22
|
|
kTimeCityTzaribrod = 3492000, // Day 3, 16:40
|
|
kTime3645000 = 3645000, // Day 3, 19:30
|
|
kTimeCitySofia = 3690000, // Day 3, 20:20
|
|
kTimeCityAdrianople = 4320900, // Day 4, 08:01
|
|
kTime4914000 = 4914000, // Day 4, 19:00
|
|
kTime4920300 = 4920300, // Day 4, 19:07
|
|
kTime4923000 = 4923000, // Day 4, 19:10
|
|
kTime4929300 = 4929300, // Day 4, 19:17
|
|
kTimeCityConstantinople = 4941000, // Day 4, 19:30
|
|
|
|
|
|
kTime10881000 = 10881000,
|
|
kTimeEnd = 15803100,
|
|
kTime16451100 = 16451100,
|
|
|
|
kTimeInvalid = 2147483647,
|
|
kTimeInvalid2 = 0xFFFFFEDA
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Archive & Chapter ID
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum ArchiveIndex {
|
|
kArchiveAll = 0,
|
|
kArchiveCd1 = 1,
|
|
kArchiveCd2 = 2,
|
|
kArchiveCd3 = 3
|
|
};
|
|
|
|
enum ChapterIndex {
|
|
kChapterAll = 0,
|
|
kChapter1 = 1,
|
|
kChapter2 = 2,
|
|
kChapter3 = 3,
|
|
kChapter4 = 4,
|
|
kChapter5 = 5
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Index of scenes
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum SceneIndex {
|
|
kSceneNone = 0,
|
|
kSceneMenu = 1,
|
|
|
|
kSceneIntro = 30,
|
|
|
|
// Inventory
|
|
kSceneMatchbox = 31,
|
|
kSceneTelegram = 32,
|
|
kScenePassengerList = 33,
|
|
kSceneScarf = 34,
|
|
kSceneParchemin = 35,
|
|
kSceneArticle = 36,
|
|
kScenePaper = 37,
|
|
kSceneFirebird = 38,
|
|
kSceneBriefcase = 39,
|
|
|
|
// Normal scenes
|
|
kSceneDefault = 40,
|
|
kScene41 = 41,
|
|
kSceneCompartmentCorpse = 42, // Tyler compartment with corpse on floor
|
|
|
|
// Fight
|
|
kSceneFightMilos = 43,
|
|
kSceneFightMilosBedOpened = 44,
|
|
kSceneFightAnna = 45,
|
|
kSceneFightIvo = 46,
|
|
kSceneFightSalko = 47,
|
|
kSceneFightVesna = 48,
|
|
|
|
kSceneEuropeMap = 49,
|
|
|
|
// Game over
|
|
kSceneGameOverStopPolice = 50,
|
|
kSceneGameOverTrainStopped = 51,
|
|
kSceneGameOverTrainStopped2 = 52,
|
|
kSceneGameOverTrainExplosion = 53,
|
|
kSceneGameOverTrainExplosion2 = 54,
|
|
kSceneGameOverBloodJacket = 55,
|
|
kSceneGameOverPolice = 56,
|
|
kSceneGameOverPolice1 = 57,
|
|
kSceneGameOverAnnaDied = 58,
|
|
kSceneGameOverVienna = 59,
|
|
kSceneGameOverVienna1 = 60,
|
|
kSceneGameOverVienna2 = 61,
|
|
kSceneGameOverAlarm = 62,
|
|
kSceneGameOverPolice2 = 63,
|
|
kSceneGameOverAlarm2 = 64,
|
|
|
|
// Start screen
|
|
kSceneStartScreen = 65,
|
|
|
|
kSceneBeetle = 128,
|
|
|
|
kSceneFightDefault = 820,
|
|
|
|
kSceneInvalid = 0xffffffff
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Jacket
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum JacketType {
|
|
kJacketOriginal = 0,
|
|
kJacketBlood = 1,
|
|
kJacketGreen = 2
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// City
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum CityIndex {
|
|
kCityEpernay = 0,
|
|
kCityChalons,
|
|
kCityBarleduc,
|
|
kCityNancy,
|
|
kCityLuneville,
|
|
kCityAvricourt, // 5
|
|
kCityDeutschAvricourt,
|
|
kCityStrasbourg,
|
|
kCityBadenOos,
|
|
kCitySalzbourg,
|
|
kCityAttnangPuchheim, // 10
|
|
kCityWels,
|
|
kCityLinz,
|
|
kCityVienna,
|
|
kCityPoszony,
|
|
kCityGalanta, // 15
|
|
kCityPolice
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Savegame ID
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum GameId {
|
|
kGameBlue,
|
|
kGameRed,
|
|
kGameGreen,
|
|
kGamePurple,
|
|
kGameTeal,
|
|
kGameGold
|
|
};
|
|
|
|
enum SavegameType {
|
|
kSavegameTypeIndex = 0,
|
|
kSavegameTypeTime = 1,
|
|
kSavegameTypeEvent = 2,
|
|
kSavegameTypeEvent2 = 3,
|
|
kSavegameTypeAuto = 4,
|
|
kSavegameTypeTickInterval = 5
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Cursor style
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum CursorStyle {
|
|
kCursorNormal,
|
|
kCursorForward,
|
|
kCursorBackward,
|
|
kCursorTurnRight,
|
|
kCursorTurnLeft,
|
|
kCursorUp,
|
|
kCursorDown,
|
|
kCursorLeft,
|
|
kCursorRight,
|
|
kCursorHand,
|
|
kCursorHandKnock, // 10
|
|
kCursorMagnifier,
|
|
kCursorHandPointer,
|
|
kCursorSleep,
|
|
kCursorTalk,
|
|
kCursorTalk2, // Need better name
|
|
|
|
// Items
|
|
kCursorMatchBox,
|
|
kCursorTelegram,
|
|
kCursorPassengerList,
|
|
kCursorArticle,
|
|
kCursorScarf, // 20
|
|
kCursorPaper,
|
|
kCursorParchemin,
|
|
kCursorMatch,
|
|
kCursorWhistle,
|
|
kCursorKey,
|
|
kCursorBomb,
|
|
kCursorFirebird,
|
|
kCursorBriefcase,
|
|
kCursorCorpse,
|
|
|
|
// Combat
|
|
kCursorPunchLeft, // 30
|
|
kCursorPunchRight,
|
|
|
|
// Portraits
|
|
kCursorPortrait, // 32
|
|
kCursorPortraitSelected,
|
|
kCursorPortraitGreen,
|
|
kCursorPortraitGreenSelected,
|
|
kCursorPortraitYellow,
|
|
kCursorPortraitYellowSelected,
|
|
kCursorHourGlass,
|
|
kCursorEggBlue,
|
|
kCursorEggRed, // 40
|
|
kCursorEggGreen,
|
|
kCursorEggPurple,
|
|
kCursorEggTeal,
|
|
kCursorEggGold,
|
|
kCursorEggClock,
|
|
kCursorNormal2,
|
|
kCursorBlank,
|
|
kCursorMAX,
|
|
|
|
// Special
|
|
kCursorProcess = 128,
|
|
kCursorKeepValue = 255
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Position - should be between 0 & 100
|
|
//////////////////////////////////////////////////////////////////////////
|
|
typedef unsigned char Position;
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// EntityPosition
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum EntityPosition {
|
|
kPositionNone = 0,
|
|
kPosition_1 = 1,
|
|
kPosition_3 = 3,
|
|
kPosition_4 = 4,
|
|
kPosition_500 = 500,
|
|
kPosition_540 = 540,
|
|
kPosition_750 = 750,
|
|
kPosition_849 = 849,
|
|
kPosition_850 = 850,
|
|
kPosition_851 = 851,
|
|
kPosition_1200 = 1200,
|
|
kPosition_1430 = 1430,
|
|
kPosition_1500 = 1500,
|
|
kPosition_1540 = 1540,
|
|
kPosition_1750 = 1750,
|
|
kPosition_2000 = 2000,
|
|
kPosition_2087 = 2087,
|
|
kPosition_2086 = 2086,
|
|
kPosition_2088 = 2088,
|
|
kPosition_2110 = 2110,
|
|
kPosition_2300 = 2300,
|
|
kPosition_2330 = 2330,
|
|
kPosition_2410 = 2410,
|
|
kPosition_2436 = 2436,
|
|
kPosition_2490 = 2490,
|
|
kPosition_2500 = 2500,
|
|
kPosition_2587 = 2587,
|
|
kPosition_2588 = 2588,
|
|
kPosition_2690 = 2690,
|
|
kPosition_2740 = 2740,
|
|
kPosition_2830 = 2830,
|
|
kPosition_2980 = 2980,
|
|
kPosition_3050 = 3050,
|
|
kPosition_3110 = 3110,
|
|
kPosition_3390 = 3390,
|
|
kPosition_3450 = 3450,
|
|
kPosition_3500 = 3500,
|
|
kPosition_3550 = 3550,
|
|
kPosition_3650 = 3650,
|
|
kPosition_3760 = 3760,
|
|
kPosition_3820 = 3820,
|
|
kPosition_3890 = 3890,
|
|
kPosition_3969 = 3969,
|
|
kPosition_3970 = 3970,
|
|
kPosition_4070 = 4070,
|
|
kPosition_4100 = 4100,
|
|
kPosition_4370 = 4370,
|
|
kPosition_4455 = 4455,
|
|
kPosition_4460 = 4460,
|
|
kPosition_4500 = 4500,
|
|
kPosition_4590 = 4590,
|
|
kPosition_4680 = 4680,
|
|
kPosition_4689 = 4689,
|
|
kPosition_4690 = 4690,
|
|
kPosition_4691 = 4691,
|
|
kPosition_4770 = 4470,
|
|
kPosition_4840 = 4840,
|
|
kPosition_5000 = 5000,
|
|
kPosition_5090 = 5090,
|
|
kPosition_5140 = 5140,
|
|
kPosition_5419 = 5419,
|
|
kPosition_5420 = 5420,
|
|
kPosition_5440 = 5440,
|
|
kPosition_5500 = 5500,
|
|
kPosition_5540 = 5540,
|
|
kPosition_5610 = 5610,
|
|
kPosition_5790 = 5790,
|
|
kPosition_5799 = 5799,
|
|
kPosition_5800 = 5800,
|
|
kPosition_5810 = 5810,
|
|
kPosition_5890 = 5890,
|
|
kPosition_5900 = 5900,
|
|
kPosition_5970 = 5970,
|
|
kPosition_6000 = 6000,
|
|
kPosition_6130 = 6130,
|
|
kPosition_6160 = 6160,
|
|
kPosition_6220 = 6220,
|
|
kPosition_6410 = 6410,
|
|
kPosition_6460 = 6460,
|
|
kPosition_6469 = 6469,
|
|
kPosition_6470 = 6470,
|
|
kPosition_6471 = 6471,
|
|
kPosition_6800 = 6800,
|
|
kPosition_6850 = 6850,
|
|
kPosition_7000 = 7000,
|
|
kPosition_7160 = 7160,
|
|
kPosition_7250 = 7250,
|
|
kPosition_7320 = 7320,
|
|
kPosition_7500 = 7500,
|
|
kPosition_7510 = 7510,
|
|
kPosition_7850 = 7850,
|
|
kPosition_7870 = 7870,
|
|
kPosition_7900 = 7900,
|
|
kPosition_7950 = 7950,
|
|
kPosition_8000 = 8000,
|
|
kPosition_8012 = 8012,
|
|
kPosition_8013 = 8013,
|
|
kPosition_8160 = 8160,
|
|
kPosition_8200 = 8200,
|
|
kPosition_8500 = 8500,
|
|
kPosition_8512 = 8512,
|
|
kPosition_8513 = 8513,
|
|
kPosition_8514 = 8514,
|
|
kPosition_8800 = 8800,
|
|
kPosition_9020 = 9020,
|
|
kPosition_9269 = 9269,
|
|
kPosition_9250 = 9250,
|
|
kPosition_9270 = 9270,
|
|
kPosition_9271 = 9271,
|
|
kPosition_9460 = 9460,
|
|
kPosition_9500 = 9500,
|
|
kPosition_9510 = 9510,
|
|
kPosition_30000 = 30000
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Location
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum Location {
|
|
kLocationOutsideCompartment = 0,
|
|
kLocationInsideCompartment = 1,
|
|
kLocationOutsideTrain = 2
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Car
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum CarIndex {
|
|
kCarNone = 0,
|
|
kCarBaggageRear = 1,
|
|
kCarKronos = 2,
|
|
kCarGreenSleeping = 3,
|
|
kCarRedSleeping = 4,
|
|
kCarRestaurant = 5,
|
|
kCarBaggage = 6,
|
|
kCarCoalTender = 7,
|
|
kCarLocomotive = 8,
|
|
kCar9 = 9
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Clothes
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum ClothesIndex {
|
|
kClothesDefault = 0,
|
|
kClothes1 = 1,
|
|
kClothes2 = 2,
|
|
kClothes3 = 3,
|
|
|
|
kClothesInvalid
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Objects (doors)
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum ObjectLocation {
|
|
kObjectLocationNone = 0,
|
|
kObjectLocation1 = 1, // Floor?
|
|
kObjectLocation2 = 2, // Bed ?
|
|
kObjectLocation3 = 3,
|
|
kObjectLocation4 = 4, // Window ?
|
|
kObjectLocation5 = 5,
|
|
kObjectLocation6 = 6,
|
|
kObjectLocation7 = 7,
|
|
kObjectLocation8 = 8,
|
|
kObjectLocation9 = 9,
|
|
kObjectLocation10 = 10,
|
|
kObjectLocation18 = 18
|
|
};
|
|
|
|
enum ObjectModel {
|
|
kObjectModelNone = 0,
|
|
kObjectModel1 = 1,
|
|
kObjectModel2 = 2,
|
|
kObjectModel3 = 3,
|
|
kObjectModel4 = 4,
|
|
kObjectModel5 = 5,
|
|
kObjectModel6 = 6,
|
|
kObjectModel7 = 7,
|
|
kObjectModel8 = 8,
|
|
kObjectModel9 = 9,
|
|
kObjectModel10 = 10
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Entity direction
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum EntityDirection {
|
|
kDirectionNone = 0,
|
|
kDirectionUp = 1,
|
|
kDirectionDown = 2,
|
|
kDirectionLeft = 3,
|
|
kDirectionRight = 4,
|
|
kDirectionSwitch = 5
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Combat
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum FightType {
|
|
kFightMilos = 2001,
|
|
kFightAnna = 2002,
|
|
kFightIvo = 2003,
|
|
kFightSalko = 2004,
|
|
kFightVesna = 2005
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Index of items in inventory data
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum InventoryItem {
|
|
kItemNone,
|
|
kItemMatchBox,
|
|
kItem2,
|
|
kItem3,
|
|
kItemTelegram,
|
|
kItem5, // 5
|
|
kItemPassengerList,
|
|
kItem7,
|
|
kItemScarf,
|
|
kItem9,
|
|
kItemParchemin, // 10
|
|
kItem11,
|
|
kItemMatch,
|
|
kItemWhistle,
|
|
kItemBeetle,
|
|
kItemKey, // 15
|
|
kItemBomb,
|
|
kItem17,
|
|
kItemFirebird,
|
|
kItemBriefcase,
|
|
kItemCorpse, // 20
|
|
kItemGreenJacket,
|
|
kItem22,
|
|
kItemPaper,
|
|
kItemArticle,
|
|
kItem25, // 25
|
|
kItem26,
|
|
kItem27,
|
|
kItem28,
|
|
kItem29,
|
|
kItem30, // 30
|
|
kItem31,
|
|
|
|
// Portrait (not an index)
|
|
kPortraitOriginal = 32,
|
|
kPortraitGreen = 34,
|
|
kPortraitYellow = 36,
|
|
|
|
kItemInvalid = 128,
|
|
|
|
kItem146 = 146,
|
|
kItem147 = 147,
|
|
|
|
// Toggles
|
|
kItemToggleHigh = 0x7F,
|
|
kItemToggleLow = 0xF7
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Object ID
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum ObjectIndex {
|
|
kObjectNone,
|
|
kObjectCompartment1,
|
|
kObjectCompartment2,
|
|
kObjectCompartment3,
|
|
kObjectCompartment4,
|
|
kObjectCompartment5, // 5
|
|
kObjectCompartment6,
|
|
kObjectCompartment7,
|
|
kObjectCompartment8,
|
|
kObjectOutsideTylerCompartment,
|
|
kObject10, // 10
|
|
kObject11,
|
|
kObject12,
|
|
kObject13,
|
|
kObject14,
|
|
kObject15, // 15
|
|
kObject16,
|
|
kObjectHandleBathroom,
|
|
kObjectHandleInsideBathroom,
|
|
kObjectKitchen,
|
|
kObject20, // 20
|
|
kObject21,
|
|
kObject22,
|
|
kObjectTrainTimeTable,
|
|
kObjectRedSleepingCar,
|
|
kObject25, // 25
|
|
kObjectHandleOutsideLeft,
|
|
kObjectHandleOutsideRight,
|
|
kObject28,
|
|
kObject29,
|
|
kObject30, // 30
|
|
kObject31,
|
|
kObjectCompartmentA,
|
|
kObjectCompartmentB,
|
|
kObjectCompartmentC,
|
|
kObjectCompartmentD, // 35
|
|
kObjectCompartmentE,
|
|
kObjectCompartmentF,
|
|
kObjectCompartmentG,
|
|
kObjectCompartmentH,
|
|
kObject40, // 40
|
|
kObject41,
|
|
kObject42,
|
|
kObject43,
|
|
kObjectOutsideBetweenCompartments,
|
|
kObjectOutsideAnnaCompartment, // 45
|
|
kObject46,
|
|
kObject47,
|
|
kObject48, // might be the egg
|
|
kObject49,
|
|
kObject50, // 50
|
|
kObject51,
|
|
kObject52,
|
|
kObject53,
|
|
kObject54,
|
|
kObjectRestaurantCar, // 55
|
|
kObject56,
|
|
kObject57,
|
|
kObject58,
|
|
kObject59,
|
|
kObject60, // 60
|
|
kObject61,
|
|
kObject62,
|
|
kObject63,
|
|
kObject64,
|
|
kObject65, // 65
|
|
kObject66,
|
|
kObject67,
|
|
kObject68,
|
|
kObject69,
|
|
kObject70, // 70
|
|
kObject71,
|
|
kObject72,
|
|
kObjectCeiling,
|
|
kObject74,
|
|
kObjectCompartmentKronos, // 75
|
|
kObject76,
|
|
kObject77,
|
|
kObject78,
|
|
kObject79,
|
|
kObject80, // 80
|
|
kObject81,
|
|
kObject82,
|
|
kObject83,
|
|
kObject84,
|
|
kObject85, // 85
|
|
kObject86,
|
|
kObject87,
|
|
kObject88,
|
|
kObject89,
|
|
kObject90, // 90
|
|
kObject91,
|
|
kObject92,
|
|
kObject93,
|
|
kObject94,
|
|
kObject95, // 95
|
|
kObject96,
|
|
kObject97,
|
|
kObject98,
|
|
kObject99,
|
|
kObject100, // 100
|
|
kObject101,
|
|
kObject102,
|
|
kObject103,
|
|
kObject104,
|
|
kObject105, // 105
|
|
kObject106,
|
|
kObject107,
|
|
kObject108,
|
|
kObjectCageMax,
|
|
kObject110, // 110
|
|
kObject111,
|
|
kObject112,
|
|
kObject113,
|
|
kObject114,
|
|
kObject115, // 115
|
|
kObject116,
|
|
kObject117,
|
|
kObject118,
|
|
kObject119,
|
|
kObject120, // 120
|
|
kObject121,
|
|
kObject122,
|
|
kObject123,
|
|
kObject124,
|
|
kObject125, // 125
|
|
kObject126,
|
|
kObject127,
|
|
kObjectMax
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Entity ID
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum EntityIndex {
|
|
kEntityPlayer,
|
|
kEntityAnna,
|
|
kEntityAugust,
|
|
kEntityMertens,
|
|
kEntityCoudert,
|
|
kEntityPascale, // 5
|
|
kEntityWaiter1,
|
|
kEntityWaiter2,
|
|
kEntityCooks,
|
|
kEntityVerges,
|
|
kEntityTatiana, // 10
|
|
kEntityVassili,
|
|
kEntityAlexei,
|
|
kEntityAbbot,
|
|
kEntityMilos,
|
|
kEntityVesna, // 15
|
|
kEntityIvo,
|
|
kEntitySalko,
|
|
kEntityKronos,
|
|
kEntityKahina,
|
|
kEntityFrancois, // 20
|
|
kEntityMmeBoutarel,
|
|
kEntityBoutarel,
|
|
kEntityRebecca,
|
|
kEntitySophie,
|
|
kEntityMahmud, // 25
|
|
kEntityYasmin,
|
|
kEntityHadija,
|
|
kEntityAlouan,
|
|
kEntityGendarmes,
|
|
kEntityMax, // 30
|
|
kEntityChapters,
|
|
kEntityTrain,
|
|
kEntityTables0,
|
|
kEntityTables1,
|
|
kEntityTables2, // 35
|
|
kEntityTables3,
|
|
kEntityTables4,
|
|
kEntityTables5,
|
|
kEntity39,
|
|
|
|
kEntitySteam = 255
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Events
|
|
// - a single D at the end means that Cath is on the right of the "scene" (D = Down the train, U = Up the train)
|
|
// - DD: during the day, coming down the train
|
|
// - DU: during the day, coming up the train
|
|
// - ND: during the night, coming down the train
|
|
// - NU: during the night, coming up the train
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum EventIndex {
|
|
kEventNone = 0,
|
|
kEventGotALight = 1,
|
|
kEventGotALightD = 2,
|
|
kEventDinerMindJoin = 3,
|
|
kEventDinerAugustOriginalJacket = 4,
|
|
kEventDinerAugust = 5,
|
|
kEventDinerAugustAlexeiBackground = 6,
|
|
kEventMeetAugustTylerCompartment = 7,
|
|
kEventMeetAugustTylerCompartmentBed = 8,
|
|
kEventMeetAugustHisCompartment = 9,
|
|
kEventMeetAugustHisCompartmentBed = 10,
|
|
kEventAugustFindCorpse = 11,
|
|
kEventAugustPresentAnna = 12,
|
|
kEventAugustPresentAnnaFirstIntroduction = 13,
|
|
kEventAnnaIntroductionRejected = 14,
|
|
kEventAnnaConversationGoodNight = 15,
|
|
kEventAnnaVisitToCompartmentGun = 16,
|
|
kEventInvalid_17 = 17,
|
|
kEventAnnaGoodNight = 18,
|
|
kEventAnnaGoodNightInverse = 19,
|
|
kEventAugustGoodMorning = 20,
|
|
kEventAugustMerchandise = 21,
|
|
kEventAugustTalkGold = 22,
|
|
kEventAugustTalkGoldDay = 23,
|
|
kEventAugustTalkCompartmentDoor = 24,
|
|
kEventAugustTalkCompartmentDoorBlueRedingote = 25,
|
|
kEventAugustLunch = 26,
|
|
kEventKronosVisit = 27,
|
|
kEventAnnaSearchingCompartment = 28,
|
|
kEventAugustBringEgg = 29,
|
|
kEventAugustBringBriefcase = 30,
|
|
kEventAugustTalkCigar = 31,
|
|
kEventAnnaBaggageArgument = 32,
|
|
kEventAnnaBagagePart2 = 33,
|
|
kEventAnnaConversation_34 = 34,
|
|
kEventAugustDrink = 35,
|
|
kEventAnnaTired = 36,
|
|
kEventAnnaTiredKiss = 37,
|
|
kEventAnnaBaggageTies = 38,
|
|
kEventAnnaBaggageTies2 = 39,
|
|
kEventAnnaBaggageTies3 = 40,
|
|
kEventAnnaBaggageTies4 = 41,
|
|
kEventAugustUnhookCarsBetrayal = 42,
|
|
kEventAugustUnhookCars = 43,
|
|
kEventLocomotiveAnnaStopsTrain = 44,
|
|
kEventInvalid_45 = 45,
|
|
kEventTrainStopped = 46,
|
|
kEventAnnaKissTrainHijacked = 47,
|
|
kEventTrainHijacked = 48,
|
|
kEventAnnaKilled = 49,
|
|
kEventKronosGoingToInvitation = 50,
|
|
kEventKronosConversation = 51,
|
|
kEventKahinaAskSpeakFirebird = 52,
|
|
kEventKahinaAskSpeak = 53,
|
|
kEventKronosConversationFirebird = 54,
|
|
kEventKahinaGunYellow = 55,
|
|
kEventKahinaGunBlue = 56,
|
|
kEventKahinaGun = 57,
|
|
kEventKronosBringEggCeiling = 58,
|
|
kEventKronosBringEgg = 59,
|
|
kEventKronosBringNothing = 60,
|
|
kEventKronosReturnBriefcase = 61,
|
|
kEventKronosHostageAnna = 62,
|
|
kEventKronosGiveFirebird = 63,
|
|
kEventKahinaPunchBaggageCarEntrance = 64,
|
|
kEventKahinaPunchBlue = 65,
|
|
kEventKahinaPunchYellow = 66,
|
|
kEventKahinaPunchSalon = 67,
|
|
kEventKahinaPunchKitchen = 68,
|
|
kEventKahinaPunchBaggageCar = 69,
|
|
kEventKahinaPunchCar = 70,
|
|
kEventKahinaPunchSuite4 = 71,
|
|
kEventKahinaPunchRestaurant = 72,
|
|
kEventKronosHostageAnnaNoFirebird = 73,
|
|
kEventKahinaPunch = 74,
|
|
kEventKahinaWrongDoor = 75,
|
|
kEventAlexeiDiner = 76,
|
|
kEventAlexeiDinerOriginalJacket = 77,
|
|
kEventAlexeiSalonVassili = 78,
|
|
kEventAlexeiSalonCath = 79,
|
|
kEventAlexeiSalonPoem = 80,
|
|
kEventTatianaAskMatchSpeakRussian = 81,
|
|
kEventTatianaAskMatch = 82,
|
|
kEventTatianaGivePoem = 83,
|
|
kEventVassiliSeizure = 84,
|
|
kEventTatianaBreakfastAlexei = 85,
|
|
kEventTatianaBreakfast = 86,
|
|
kEventTatianaBreakfastGivePoem = 87,
|
|
kEventTatianaAlexei = 88,
|
|
kEventTatianaCompartmentStealEgg = 89,
|
|
kEventTatianaCompartment = 90,
|
|
kEventVassiliCompartmentStealEgg = 91,
|
|
kEventTatianaTylerCompartment = 92,
|
|
kEventTylerCastleDream= 93,
|
|
kEventVassiliDeadAlexei = 94,
|
|
kEventCathFreePassengers = 95,
|
|
kEventTatianaVassiliTalk = 96,
|
|
kEventTatianaVassiliTalkNight = 97,
|
|
kEventMilosTylerCompartmentVisit = 98,
|
|
kEventMilosTylerCompartmentBedVisit = 99,
|
|
kEventMilosTylerCompartment = 100,
|
|
kEventMilosTylerCompartmentBed = 101,
|
|
kEventMilosTylerCompartmentDefeat = 102,
|
|
kEventMilosCorpseFloor = 103,
|
|
kEventMilosCompartmentVisitAugust = 104,
|
|
kEventMilosCorridorThanks = 105,
|
|
kEventMilosCorridorThanksD = 106,
|
|
kEventMilosCompartmentVisitTyler = 107,
|
|
kEventLocomotiveMilosDay = 108,
|
|
kEventLocomotiveMilosNight = 109,
|
|
kEventAbbotIntroduction = 110,
|
|
kEventAbbotWrongCompartment = 111,
|
|
kEventAbbotWrongCompartmentBed = 112,
|
|
kEventAbbotInvitationDrink = 113,
|
|
kEventAbbotDrinkGiveDetonator = 114,
|
|
kEventTrainExplosionBridge = 115,
|
|
kEventDefuseBomb = 116,
|
|
kEventAbbotDrinkDefuse = 117,
|
|
kEventMertensLastCar = 118,
|
|
kEventMertensLastCarOriginalJacket = 119,
|
|
kEventMertensKronosInvitation = 120,
|
|
kEventMertensKronosInvitationCompartment = 121,
|
|
kEventMertensKronosInvitationClosedWindows = 122,
|
|
kEventMertensBloodJacket = 123,
|
|
kEventCoudertBloodJacket = 124,
|
|
kEventMertensCorpseFloor = 125,
|
|
kEventMertensCorpseBed = 126,
|
|
kEventMertensDontMakeBed = 127,
|
|
kEventInvalid_128 = 128,
|
|
kEventGendarmesArrestation = 129,
|
|
kEventVergesSuitcase = 130,
|
|
kEventVergesSuitcaseStart = 131,
|
|
kEventVergesSuitcaseOtherEntry = 132,
|
|
kEventVergesSuitcaseOtherEntryStart = 133,
|
|
kEventVergesSuitcaseNight = 134,
|
|
kEventVergesSuitcaseNightStart = 135,
|
|
kEventVergesSuitcaseNightOtherEntry = 136,
|
|
kEventVergesSuitcaseNightOtherEntryStart = 137,
|
|
kEventMertensAskTylerCompartment = 138,
|
|
kEventMertensAskTylerCompartmentD = 139,
|
|
kEventMertensPushCallNight = 140,
|
|
kEventMertensPushCall = 141,
|
|
kEventMertensAugustWaiting = 142,
|
|
kEventMertensAugustWaitingCompartment = 143,
|
|
kEventIntroBroderbrund = 144,
|
|
kEventCoudertAskTylerCompartment = 145,
|
|
kEventMertensKronosConcertInvitation = 146,
|
|
kEventCoudertGoingOutOfVassiliCompartment = 147,
|
|
kEventLocomotiveConductorsDiscovered = 148,
|
|
kEventLocomotiveConductorsLook = 149,
|
|
kEventMahmudWrongDoor = 150,
|
|
kEventMahmudWrongDoorOriginalJacket = 151,
|
|
kEventMahmudWrongDoorDay = 152,
|
|
kEventVergesEscortToDiningCar = 153,
|
|
kEventVergesBaggageCarOffLimits = 154,
|
|
kEventVergesCanIHelpYou = 155,
|
|
kEventCoudertBaggageCar = 156,
|
|
kEventCathTurningDay = 157,
|
|
kEventCathTurningNight = 158,
|
|
kEventIntro = 159,
|
|
kEventCathDream = 160,
|
|
kEventCorpseDropBridge = 161,
|
|
kEventTrainPassing = 162,
|
|
kEventVergesAnnaDead = 163,
|
|
kEventViennaAugustUnloadGuns = 164,
|
|
kEventViennaKronosFirebird = 165,
|
|
kEventViennaContinueGame = 166,
|
|
kEventCathVesnaRestaurantKilled = 167,
|
|
kEventCathMaxCage = 168,
|
|
kEventCathMaxFree = 169,
|
|
kEventCathMaxLickHand = 170,
|
|
kEventCathIvoFight = 171,
|
|
kEventCathSalkoTrainTopFight = 172,
|
|
kEventCathVesnaTrainTopFight = 173,
|
|
kEventCathVesnaTrainTopKilled = 174,
|
|
kEventCathVesnaTrainTopWin = 175,
|
|
kEventCathSalkoTrainTopWin = 176,
|
|
kEventFrancoisWhistle = 177,
|
|
kEventFrancoisWhistleD = 178,
|
|
kEventFrancoisWhistleNight = 179,
|
|
kEventFrancoisWhistleNightD = 180,
|
|
kEventFrancoisShowBeetle = 181,
|
|
kEventFrancoisShowBeetleD = 182,
|
|
kEventFrancoisTradeWhistle = 183,
|
|
kEventFrancoisTradeWhistleD = 184,
|
|
kEventFrancoisShowEgg = 185,
|
|
kEventFrancoisShowEggD = 186,
|
|
kEventFrancoisShowEggNightD = 187,
|
|
kEventFrancoisShowEggNight = 188,
|
|
kEventKronosBringFirebird = 189,
|
|
kEventKronosOpenFirebird = 190,
|
|
kEventFinalSequence = 191,
|
|
kEventLocomotiveRestartTrain = 192,
|
|
kEventLocomotiveOldBridge = 193,
|
|
kEventLocomotiveAbbotGetSomeRest = 194,
|
|
kEventLocomotiveAbbotShoveling = 195,
|
|
kEventLocomotiveMilosShovelingDay = 196,
|
|
kEventLocomotiveMilosShovelingNight = 197,
|
|
kEventAnnaGiveScarf = 198,
|
|
kEventAnnaGiveScarfDiner = 199,
|
|
kEventAnnaGiveScarfSalon = 200,
|
|
kEventAnnaGiveScarfMonogram = 201,
|
|
kEventAnnaGiveScarfDinerMonogram = 202,
|
|
kEventAnnaGiveScarfSalonMonogram = 203,
|
|
kEventAnnaGiveScarfAsk = 204,
|
|
kEventAnnaGiveScarfDinerAsk = 205,
|
|
kEventAnnaGiveScarfSalonAsk = 206,
|
|
kEventAugustArrivalInMunich = 207,
|
|
kEventAnnaDialogGoToJerusalem = 208,
|
|
kEventConcertStart = 209,
|
|
kEventConcertEnd = 210,
|
|
kEventCathFallingAsleep = 211,
|
|
kEventCathWakingUp = 212,
|
|
kEventConcertCough = 213,
|
|
kEventConcertSit = 214,
|
|
kEventConcertLeaveWithBriefcase = 215,
|
|
kEventCorpseDropFloorOriginal = 216,
|
|
kEventCorpseDropFloorGreen = 217,
|
|
kEventCorpsePickFloorOriginal = 218,
|
|
kEventCorpsePickFloorGreen = 219,
|
|
kEventCorpsePickFloorOpenedBedOriginal = 220,
|
|
kEventCorpsePickBedOriginal = 221,
|
|
kEventCorpsePickBedGreen = 222,
|
|
kEventCorpseDropBedOriginal = 223,
|
|
kEventCorpseDropBedGreen = 224,
|
|
kEventCorpseDropWindowOriginal = 225,
|
|
kEventCorpseDropWindowGreen = 226,
|
|
kEventCathFindCorpse = 227,
|
|
kEventCathLookOutsideWindowDay = 228,
|
|
kEventCathLookOutsideWindowNight = 229,
|
|
kEventCathGoOutsideTylerCompartmentDay = 230,
|
|
kEventCathGoOutsideTylerCompartmentNight = 231,
|
|
kEventCathGoOutsideDay = 232,
|
|
kEventCathGoOutsideNight = 233,
|
|
kEventCathSlipTylerCompartmentDay = 234,
|
|
kEventCathSlipTylerCompartmentNight = 235,
|
|
kEventCathSlipDay = 236,
|
|
kEventCathSlipNight = 237,
|
|
kEventCathGetInsideTylerCompartmentDay = 238,
|
|
kEventCathGetInsideTylerCompartmentNight = 239,
|
|
kEventCathGetInsideDay = 240,
|
|
kEventCathGetInsideNight = 241,
|
|
kEventCathGettingInsideAnnaCompartment = 242,
|
|
kEventCathClimbUpTrainGreenJacket = 243,
|
|
kEventCathClimbUpTrainNoJacketNight = 244,
|
|
kEventCathClimbUpTrainNoJacketDay = 245,
|
|
kEventCathClimbDownTrainGreenJacket = 246,
|
|
kEventCathClimbDownTrainNoJacketNight = 247,
|
|
kEventCathClimbDownTrainNoJacketDay= 248,
|
|
kEventCathTopTrainGreenJacket = 249,
|
|
kEventCathTopTrainNoJacketNight = 250,
|
|
kEventCathTopTrainNoJacketDay = 251,
|
|
kEventCathBreakCeiling = 252,
|
|
kEventCathJumpDownCeiling = 253,
|
|
kEventCathJumpUpCeilingBriefcase = 254,
|
|
kEventCathJumpUpCeiling = 255,
|
|
kEventPickGreenJacket = 256,
|
|
kEventPickScarfGreen = 257,
|
|
kEventPickScarfOriginal = 258,
|
|
kEventCloseMatchbox = 259,
|
|
kEventCathStruggleWithBonds = 260,
|
|
kEventCathBurnRope = 261,
|
|
kEventCathRemoveBonds = 262,
|
|
kEventCathStruggleWithBonds2 = 263,
|
|
kEventCathDefusingBomb = 264,
|
|
kEventCathSmokeNight = 265,
|
|
kEventCathSmokeDay = 266,
|
|
kEventCathOpenEgg = 267,
|
|
kEventCathOpenEggNoBackground = 268,
|
|
kEventCathCloseEgg = 269,
|
|
kEventCathCloseEggNoBackground = 270,
|
|
kEventCathUseWhistleOpenEgg = 271,
|
|
kEventCathUseWhistleOpenEggNoBackground = 272
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Action ID (used by entity logic)
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum ActionIndex {
|
|
kActionNone = 0,
|
|
kAction1 = 1,
|
|
kActionEndSound = 2,
|
|
kActionExitCompartment = 3,
|
|
kAction4 = 4,
|
|
kActionExcuseMeCath = 5,
|
|
kActionExcuseMe = 6,
|
|
kActionKnock = 8,
|
|
kActionOpenDoor = 9,
|
|
kAction10 = 10,
|
|
kAction11 = 11,
|
|
kActionDefault = 12,
|
|
kAction16 = 16,
|
|
kActionDrawScene = 17,
|
|
kActionCallback = 18,
|
|
|
|
/////////////////////////////
|
|
// Abbot
|
|
/////////////////////////////
|
|
kAction100969180 = 100969180, // Anna
|
|
kAction101169422 = 101169422,
|
|
kAction104060776 = 104060776,
|
|
kAction135600432 = 135600432,
|
|
kAction136196244 = 136196244,
|
|
kAction157159392 = 157159392,
|
|
kAction157489665 = 157489665,
|
|
kAction158480160 = 158480160,
|
|
kAction192054567 = 192054567,
|
|
kAction203073664 = 203073664,
|
|
kAction222609266 = 222609266,
|
|
|
|
/////////////////////////////
|
|
// Alexei
|
|
/////////////////////////////
|
|
kAction100906246 = 100906246,
|
|
kAction123536024 = 123536024,
|
|
kAction124697504 = 124697504,
|
|
kAction135664192 = 135664192,
|
|
kAction135854208 = 135854208,
|
|
kAction188784532 = 188784532,
|
|
kAction221617184 = 221617184,
|
|
|
|
/////////////////////////////
|
|
// Alouan
|
|
/////////////////////////////
|
|
kAction189489753 = 189489753,
|
|
kAction190219584 = 190219584, // Francois
|
|
|
|
/////////////////////////////
|
|
// Anna
|
|
/////////////////////////////
|
|
kAction136702400 = 136702400,
|
|
kAction139254416 = 139254416,
|
|
kAction156049968 = 156049968,
|
|
kAction157370960 = 157370960,
|
|
kAction157894320 = 157894320,
|
|
kAction159332865 = 159332865, // August
|
|
kAction189299008 = 189299008,
|
|
kAction191668032 = 191668032, // some action during or before concert?
|
|
kAction201437056 = 201437056,
|
|
kAction235856512 = 235856512,
|
|
kAction236060709 = 236060709,
|
|
kAction238936000 = 238936000,
|
|
kAction259136835 = 259136835,
|
|
kAction291662081 = 291662081,
|
|
|
|
|
|
/////////////////////////////
|
|
// August
|
|
/////////////////////////////
|
|
kAction123793792 = 123793792,
|
|
kAction134611040 = 134611040,
|
|
kAction168046720 = 168046720,
|
|
kAction168627977 = 168627977,
|
|
kAction169032608 = 169032608,
|
|
kAction189426612 = 189426612,
|
|
kAction203859488 = 203859488,
|
|
kAction219522616 = 219522616, // Waiter1
|
|
kAction225182640 = 225182640,
|
|
kAction235257824 = 235257824,
|
|
|
|
/////////////////////////////
|
|
// Boutarel
|
|
/////////////////////////////
|
|
kAction125039808 = 125039808,
|
|
kAction134466544 = 134466544,
|
|
kAction135854206 = 135854206,
|
|
kAction159003408 = 159003408,
|
|
kAction203520448 = 203520448,
|
|
kAction237889408 = 237889408,
|
|
|
|
/////////////////////////////
|
|
// Chapters
|
|
/////////////////////////////
|
|
kAction135800432 = 135800432,
|
|
kActionChapter3 = 139122728,
|
|
kActionChapter5 = 139254416,
|
|
kAction156435676 = 156435676,
|
|
kAction169629818 = 169629818,
|
|
kAction171843264 = 171843264,
|
|
kAction190346110 = 190346110,
|
|
|
|
/////////////////////////////
|
|
// Cooks
|
|
/////////////////////////////
|
|
kAction101632192 = 101632192,
|
|
kAction224849280 = 224849280,
|
|
kAction236976550 = 236976550,
|
|
|
|
/////////////////////////////
|
|
// Coudert
|
|
/////////////////////////////
|
|
kAction123733488 = 123733488,
|
|
kAction154005632 = 154005632,
|
|
kAction155991520 = 155991520,
|
|
kAction157026693 = 157026693,
|
|
kAction168253822 = 168253822,
|
|
kAction168254872 = 168254872,
|
|
kAction168316032 = 168316032, // Tatiana
|
|
kAction169557824 = 169557824,
|
|
kAction171394341 = 171394341, // Mertens
|
|
kAction185671840 = 185671840,
|
|
kAction185737168 = 185737168,
|
|
kAction188570113 = 188570113,
|
|
kAction189026624 = 189026624,
|
|
kAction189750912 = 189750912,
|
|
kAction192063264 = 192063264, // Anna
|
|
kAction201431954 = 201431954, // Mertens / Verges
|
|
kAction201439712 = 201439712,
|
|
kAction205033696 = 205033696,
|
|
kAction205346192 = 205346192, // Francois
|
|
kAction219971920 = 219971920, // Anna
|
|
kAction223068211 = 223068211, // MmeBoutarel
|
|
kAction225932896 = 225932896,
|
|
kAction226031488 = 226031488, // Verges
|
|
kAction235061888 = 235061888, // Tatiana
|
|
kAction238358920 = 238358920, // Anna
|
|
kAction253868128 = 253868128, // Anna
|
|
kAction285528346 = 285528346, // Rebecca
|
|
kAction292048641 = 292048641,
|
|
kAction305159806 = 305159806,
|
|
kAction326348944 = 326348944,
|
|
kAction339669520 = 339669520, // Verges
|
|
|
|
/////////////////////////////
|
|
// Francois
|
|
/////////////////////////////
|
|
kAction100901266 = 100901266,
|
|
kAction100957716 = 100957716,
|
|
kAction101107728 = 101107728,
|
|
kAction189872836 = 189872836,
|
|
kAction190390860 = 190390860,
|
|
|
|
/////////////////////////////
|
|
// Gendarmes
|
|
/////////////////////////////
|
|
kAction168710784 = 168710784,
|
|
kAction169499649 = 169499649,
|
|
|
|
/////////////////////////////
|
|
// Kahina
|
|
/////////////////////////////
|
|
kAction92186062 = 92186062,
|
|
kAction137503360 = 137503360,
|
|
kAction237555748 = 237555748,
|
|
|
|
/////////////////////////////
|
|
// Kronos
|
|
/////////////////////////////
|
|
kAction137685712 = 137685712,
|
|
kAction138085344 = 138085344,
|
|
kAction171849314 = 171849314,
|
|
kAction235599361 = 235599361,
|
|
|
|
/////////////////////////////
|
|
// Mahmud
|
|
/////////////////////////////
|
|
kAction102227384 = 102227384, // Mertens
|
|
kAction156567128 = 156567128,
|
|
kAction170483072 = 170483072,
|
|
kAction225563840 = 225563840,
|
|
|
|
/////////////////////////////
|
|
// Max
|
|
/////////////////////////////
|
|
kAction71277948 = 71277948,
|
|
kAction158007856 = 158007856,
|
|
kAction101687594 = 101687594,
|
|
kAction122358304 = 122358304, // also Waiter2/Boutarel?
|
|
kActionMaxFreeFromCage = 135204609,
|
|
kAction156622016 = 156622016,
|
|
|
|
/////////////////////////////
|
|
// Mertens
|
|
/////////////////////////////
|
|
kAction155604840 = 155604840, // MmeBoutarel
|
|
kAction169633856 = 169633856,
|
|
kAction188635520 = 188635520,
|
|
kAction190082817 = 190082817,
|
|
kAction192849856 = 192849856,
|
|
kAction204379649 = 204379649,
|
|
kAction224122407 = 224122407,
|
|
kAction238732837 = 238732837,
|
|
kAction238790488 = 238790488, // Tatiana
|
|
kAction269436673 = 269436673,
|
|
kAction269624833 = 269624833,
|
|
kAction302614416 = 302614416,
|
|
kAction303343617 = 303343617,
|
|
|
|
/////////////////////////////
|
|
// Milos
|
|
/////////////////////////////
|
|
kAction88652208 = 88652208, // Coudert
|
|
kAction122865568 = 122865568,
|
|
kAction123852928 = 123852928,
|
|
kAction123199584 = 123199584, // Coudert
|
|
kAction157691176 = 157691176,
|
|
kAction208228224 = 208228224,
|
|
kAction221683008 = 221683008,
|
|
kAction259125998 = 259125998,
|
|
|
|
/////////////////////////////
|
|
// Mme Boutarel
|
|
/////////////////////////////
|
|
kAction102484312 = 102484312,
|
|
kAction102752636 = 102752636,
|
|
kAction134289824 = 134289824,
|
|
kAction168986720 = 168986720,
|
|
kAction202221040 = 202221040,
|
|
kAction242526416 = 242526416,
|
|
|
|
/////////////////////////////
|
|
// Pascale
|
|
/////////////////////////////
|
|
kAction101824388 = 101824388,
|
|
kAction136059947 = 136059947,
|
|
kAction169750080 = 169750080,
|
|
kAction190605184 = 190605184,
|
|
kAction191604416 = 191604416,
|
|
kAction207769280 = 207769280,
|
|
kAction223262556 = 223262556,
|
|
kAction239072064 = 239072064,
|
|
kAction257489762 = 257489762,
|
|
kAction269479296 = 269479296,
|
|
kAction352703104 = 352703104,
|
|
kAction352768896 = 352768896,
|
|
|
|
/////////////////////////////
|
|
// Rebecca
|
|
/////////////////////////////
|
|
kAction125496184 = 125496184,
|
|
kAction155465152 = 155465152,
|
|
kAction155980128 = 155980128,
|
|
kAction169358379 = 169358379,
|
|
kAction224253538 = 224253538,
|
|
kAction254915200 = 254915200,
|
|
|
|
/////////////////////////////
|
|
// Salko
|
|
/////////////////////////////
|
|
kAction55996766 = 55996766,
|
|
kAction101169464 = 101169464,
|
|
kAction102675536 = 102675536, // Ivo
|
|
kAction136184016 = 136184016,
|
|
|
|
/////////////////////////////
|
|
// Servers 0
|
|
/////////////////////////////
|
|
kAction170016384 = 170016384,
|
|
kAction188893625 = 188893625,
|
|
kAction201964801 = 201964801, // August
|
|
kAction204704037 = 204704037,
|
|
kAction207330561 = 207330561,
|
|
kAction218128129 = 218128129,
|
|
kAction218586752 = 218586752,
|
|
kAction218983616 = 218983616,
|
|
kAction223712416 = 223712416,
|
|
kAction237485916 = 237485916,
|
|
kAction252568704 = 252568704,
|
|
kAction268773672 = 268773672, // Anna / August
|
|
kAction270068760 = 270068760,
|
|
kAction270410280 = 270410280,
|
|
kAction286403504 = 286403504,
|
|
kAction286534136 = 286534136,
|
|
kAction292758554 = 292758554,
|
|
kAction304061224 = 304061224,
|
|
kAction337548856 = 337548856,
|
|
|
|
/////////////////////////////
|
|
// Servers 1
|
|
/////////////////////////////
|
|
kAction101106391 = 101106391,
|
|
kAction122288808 = 122288808, // Boutarel
|
|
kAction123712592 = 123712592, // Ivo
|
|
kAction125826561 = 125826561, // August
|
|
kAction134486752 = 134486752, // August
|
|
kAction168717392 = 168717392, // Boutarel
|
|
kAction189688608 = 189688608,
|
|
kAction219377792 = 219377792,
|
|
kAction223002560 = 223002560,
|
|
kAction236237423 = 236237423,
|
|
kAction256200848 = 256200848,
|
|
kAction258136010 = 258136010,
|
|
kAction269485588 = 269485588,
|
|
kAction291721418 = 291721418,
|
|
kAction302203328 = 302203328,
|
|
kAction302996448 = 302996448,
|
|
kAction326144276 = 326144276,
|
|
|
|
/////////////////////////////
|
|
// Sophie
|
|
/////////////////////////////
|
|
kActionProceedChapter5 = 70549068,
|
|
kAction123668192 = 123668192,
|
|
kAction125242096 = 125242096,
|
|
kAction136654208 = 136654208,
|
|
kAction259921280 = 259921280,
|
|
kAction292775040 = 292775040,
|
|
|
|
/////////////////////////////
|
|
// Tables
|
|
/////////////////////////////
|
|
kActionDrawTablesWithChairs = 103798704,
|
|
kAction136455232 = 136455232,
|
|
|
|
/////////////////////////////
|
|
// Tatiana
|
|
/////////////////////////////
|
|
kAction69239528 = 69239528,
|
|
kAction123857088 = 123857088,
|
|
kAction124973510 = 124973510,
|
|
kAction154071333 = 154071333,
|
|
kAction156444784 = 156444784,
|
|
kAction169360385 = 169360385,
|
|
kAction191198209 = 191198209,
|
|
kAction223183000 = 223183000, // August
|
|
kAction236053296 = 236053296, // Alexei
|
|
kAction236241630 = 236241630, // Anna
|
|
kAction236517970 = 236517970, // Anna
|
|
kAction268620864 = 268620864, // August
|
|
kAction290869168 = 290869168,
|
|
|
|
/////////////////////////////
|
|
// Train
|
|
/////////////////////////////
|
|
kAction191070912 = 191070912,
|
|
kActionTrainStopRunning = 191350523,
|
|
kActionCatchBeetle = 202613084,
|
|
kAction203339360 = 203339360,
|
|
kActionTrainStartRunning = 203419131,
|
|
kAction203863200 = 203863200,
|
|
kAction222746496 = 222746496,
|
|
kActionBreakCeiling = 225056224,
|
|
kAction290410610 = 290410610,
|
|
kActionJumpDownCeiling = 338494260,
|
|
|
|
/////////////////////////////
|
|
// Verges
|
|
/////////////////////////////
|
|
kAction125233040 = 125233040, // Abbot
|
|
kAction125499160 = 125499160,
|
|
kAction155853632 = 155853632,
|
|
kAction158617345 = 158617345,
|
|
kAction167854368 = 167854368,
|
|
kAction168187490 = 168187490,
|
|
kAction168255788 = 168255788,
|
|
kActionDeliverMessageToTyler = 191337656,
|
|
kAction202558662 = 202558662,
|
|
|
|
/////////////////////////////
|
|
// Vassili
|
|
/////////////////////////////
|
|
kAction122732000 = 122732000,
|
|
kAction168459827 = 168459827,
|
|
kAction191477936 = 191477936,
|
|
|
|
/////////////////////////////
|
|
// Vesna
|
|
/////////////////////////////
|
|
kAction124190740 = 124190740,
|
|
kAction134427424 = 134427424,
|
|
kAction135024800 = 135024800,
|
|
kAction137165825 = 137165825,
|
|
kAction155913424 = 155913424,
|
|
kAction190412928 = 190412928,
|
|
kAction203663744 = 203663744,
|
|
kAction204832737 = 204832737,
|
|
|
|
/////////////////////////////
|
|
// Misc
|
|
/////////////////////////////
|
|
kAction158610240 = 158610240,
|
|
kAction167992577 = 167992577,
|
|
kAction168646401 = 168646401,
|
|
kAction169300225 = 169300225,
|
|
kAction169773228 = 169773228,
|
|
kActionEndChapter = 190346110,
|
|
kAction191001984 = 191001984,
|
|
kAction192637492 = 192637492,
|
|
kAction201959744 = 201959744,
|
|
kAction202621266 = 202621266,
|
|
kAction202884544 = 202884544,
|
|
kAction203078272 = 203078272,
|
|
kAction205034665 = 205034665,
|
|
kAction205294778 = 205294778,
|
|
kActionUseWhistle = 270751616,
|
|
kAction272177921 = 272177921,
|
|
kAction224309120 = 224309120,
|
|
kAction225358684 = 225358684,
|
|
kAction225367984 = 225367984,
|
|
kAction226078300 = 226078300, // Whistle
|
|
|
|
kActionEnd
|
|
};
|
|
|
|
} // End of namespace LastExpress
|
|
|
|
#endif // LASTEXPRESS_SHARED_H
|