- exported cinema texts to the string table as well.

This commit is contained in:
Christoph Oelckers 2020-08-22 18:30:48 +02:00
parent 0843f5f04a
commit d94077f833
4 changed files with 147 additions and 167 deletions

View file

@ -861,44 +861,25 @@ void TextOverlay::Start(int starttime)
lastclock = starttime;
}
void TextOverlay::ComputeCinemaText(int nLine)
void TextOverlay::ComputeCinemaText()
{
linecount = 0;
while (1)
{
if (!strcmp(gString[linecount + nLine], "END")) {
break;
}
int nWidth = SmallFont->StringWidth(gString[linecount + nLine]);
nLeft[linecount] = 160 - nWidth / 2;
linecount++;
int i = 0;
for (auto &line : screentext)
{
int nWidth = SmallFont->StringWidth(line);
nLeft[i++] = 160 - nWidth / 2;
}
nCrawlY = 199;
nHeight = linecount * 10;
nHeight = screentext.Size() * 10;
}
void TextOverlay::ReadyCinemaText(uint16_t nVal)
{
line = FindGString("CINEMAS");
if (line < 0) {
return;
}
while (nVal)
{
while (strcmp(gString[line], "END")) {
line++;
}
line++;
nVal--;
}
ComputeCinemaText(line);
FStringf label("TXT_EX_LASTLEVEL%d", nVal + 1);
label = GStrings(label);
screentext = label.Split("\n");
ComputeCinemaText();
}
void TextOverlay::DisplayText()
@ -906,12 +887,12 @@ void TextOverlay::DisplayText()
if (nHeight + nCrawlY > 0)
{
double y = nCrawlY;
int i = 0;
unsigned int i = 0;
while (i < linecount && y <= 199)
while (i < screentext.Size() && y <= 199)
{
if (y >= -10) {
DrawText(twod, SmallFont, CR_UNDEFINED, nLeft[i], y, gString[line + i], DTA_FullscreenScale, FSMode_ScaleToFit43, DTA_VirtualWidth, 320, DTA_VirtualHeight, 200, TAG_DONE);
DrawText(twod, SmallFont, CR_UNDEFINED, nLeft[i], y, screentext[i], DTA_FullscreenScale, FSMode_ScaleToFit43, DTA_VirtualWidth, 320, DTA_VirtualHeight, 200, TAG_DONE);
}
i++;

View file

@ -64,136 +64,6 @@ bool EndLevel = false;
/* these are XORed in the original game executable then XORed back to normal when the game first starts. Here they are normally */
const char *gString[] =
{
"CINEMAS",
"THE ANCIENT EGYPTIAN CITY",
"OF KARNAK HAS BEEN SEIZED",
"BY UNKNOWN POWERS, AND GREAT",
"TURMOIL IS SPREADING INTO",
"NEIGHBORING LANDS, POSING",
"A GRAVE THREAT TO PLANET",
"EARTH. MILITANT FORCES FROM",
"ALL PARTS OF THE GLOBE HAVE",
"ENTERED THE KARNAK VALLEY,",
"BUT NONE HAVE RETURNED. THE",
"ONLY KNOWN INFORMATION",
"REGARDING THIS CRISIS CAME",
"FROM A DYING KARNAK VILLAGER",
"WHO MANAGED TO WANDER OUT OF",
"THE VALLEY TO SAFETY.",
"'THEY'VE STOLEN THE GREAT",
"KING'S MUMMY...', MURMURED",
"THE DYING VILLAGER, BUT THE",
"VILLAGER DIED BEFORE HE",
"COULD SAY MORE. WITH NO",
"OTHER OPTIONS, WORLD",
"LEADERS HAVE CHOSEN TO DROP",
"YOU INTO THE VALLEY VIA",
"HELICOPTER IN AN ATTEMPT",
"TO FIND AND DESTROY THE",
"THREATENING FORCES AND",
"RESOLVE THE MYSTERY THAT",
"HAS ENGULFED THIS ONCE",
"PEACEFUL LAND. FLYING AT",
"HIGH ALTITUDE TO AVOID",
"BEING SHOT DOWN LIKE OTHERS",
"BEFORE YOU, YOUR COPTER",
"MYSTERIOUSLY EXPLODES IN THE",
"AIR AS YOU BARELY ESCAPE,",
"WITH NO POSSIBLE CONTACT",
"WITH THE OUTSIDE WORLD.",
"SCARED AS HELL, YOU DESCEND",
"INTO THE HEART OF KARNAK...",
"HOME TO THE CELEBRATED",
"BURIAL CRYPT OF THE GREAT",
"KING RAMSES.",
"END",
"AN EVIL FORCE KNOWN AS THE",
"KILMAAT HAS BESIEGED THE",
"SANCTITY OF MY PALACE AND",
"IS PULLING AT THE VERY",
"TENDRILS OF MY EXISTENCE.",
"THESE FORCES INTEND TO",
"ENSLAVE ME BY REANIMATING",
"MY PRESERVED CORPSE. I HAVE",
"PROTECTED MY CORPSE WITH A",
"GENETIC KEY. IF YOU ARE",
"UNSUCCESSFUL I CANNOT",
"PROTECT CIVILIZATION, AND",
"CHAOS WILL PREVAIL. I AM",
"BEING TORN BETWEEN WORLDS",
"AND THIS INSIDIOUS",
"EXPERIMENT MUST BE STOPPED.",
"END",
"I HAVE HIDDEN A MYSTICAL",
"GAUNTLET AT EL KAB THAT WILL",
"CHANNEL MY ENERGY THROUGH",
"YOUR HANDS. FIND THE",
"GAUNTLET AND CROSS THE ASWAN",
"HIGH DAM TO DEFEAT THE EVIL",
"BEAST SET.",
"END",
"SET WAS A FORMIDABLE FOE.",
"NO MORTAL HAS EVEN CONQUERED",
"THEIR OWN FEAR, MUCH LESS",
"ENTERED MORTAL BATTLE AND",
"TAKEN HIS LIFE.",
"END",
"YOU'VE MADE IT HALFWAY TOWARD",
"FULLFILLING YOUR DESTINY.",
"THE KILMAAT ARE GROWING",
"RESTLESS WITH YOUR PROGRESS.",
"SEEK OUT A TEMPLE IN THIS",
"CITADEL WHERE I WILL PROVIDE",
"MORE INFORMATION",
"END",
"THE KILMAAT RACE HAS",
"CONTINUED THEIR MONSTEROUS",
"ANIMAL-HUMAN EXPERIMENTS IN",
"AN EFFORT TO SOLVE THE KEY OF",
"ANIMATING MY CORPSE. THE",
"VICTORY DEFEATING SET DIDN'T",
"SLOW YOU DOWN AS MUCH AS",
"THEY HAD PLANNED. THEY ARE",
"ACTIVELY ROBBING A SLAVE",
"GIRL OF HER LIFE TO CREATE",
"ANOTHER MONSTEROUS",
"ABOMINATION, COMBINING HUMAN",
"AND INSECT INTENT ON SLAYING",
"YOU. PREPARE YOURSELF FOR",
"BATTLE AS SHE WILL BE WAITING",
"FOR YOU AT THE LUXOR TEMPLE. ",
"END",
"YOU'VE DONE WELL TO DEFEAT",
"SELKIS. YOU HAVE DISTRACTED",
"THE KILMAAT WITH YOUR",
"PRESENCE AND THEY HAVE",
"TEMPORARILY ABANDONED",
"ANIMATION OF MY CORPSE.",
"THE ALIEN QUEEN KILMAATIKHAN",
"HAS A PERSONAL VENDETTA",
"AGAINST YOU. ARROGANCE IS",
"HER WEAKNESS, AND IF YOU CAN",
"DEFEAT KILMAATIKHAN, THE",
"BATTLE WILL BE WON.",
"END",
"THE KILMAAT HAVE BEEN",
"DESTROYED. UNFORTUNATELY,",
"YOUR RECKLESSNESS HAS",
"DESTROYED THE EARTH AND ALL",
"OF ITS INHABITANTS. ALL THAT",
"REMAINS IS A SMOLDERING HUNK",
"OF ROCK.",
"END",
"THE KILMAAT HAVE BEEN",
"DEFEATED AND YOU SINGLE",
"HANDEDLY SAVED THE EARTH",
"FROM DESTRUCTION.",
" ",
" ",
" ",
"YOUR BRAVERY AND HEROISM",
"ARE LEGENDARY.",
"END",
"ITEMS",
"LIFE BLOOD",
"LIFE",

View file

@ -265,14 +265,14 @@ class TextOverlay
double nCrawlY;
short nLeft[50];
int nHeight;
int linecount;
int line;
int lastclock;
TArray<FString> screentext;
public:
void Start(int starttime);
void ComputeCinemaText(int nLine);
void ComputeCinemaText();
void ReadyCinemaText(uint16_t nVal);
void DisplayText();
bool AdvanceCinemaText(int totalclock);

View file

@ -2157,4 +2157,133 @@ take out the control panels and
the central power source. This
is the big one buddy, best of
luck... For all of us.
",TXT_EX_LASTLEVEL3,,,,,,,,,,,,,,,,,,,,,,
",TXT_EX_LASTLEVEL3,,,,,,,,,,,,,,,,,,,,,,
"The ancient Egyptian city
of Karnak has been seized
by unknown powers, and great
turmoil is spreading into
neighboring lands, posing
a grave threat to planet
earth. Militant forces from
all parts of the globe have
entered the Karnak valley,
but none have returned. The
only known information
regarding this crisis came
from a dying karnak villager
who managed to wander out of
the valley to safety.
'They've stolen the great
King's mummy...', Murmured
the dying villager, but the
villager died before he
could say more. With no
other options, world
leaders have chosen to drop
you into the valley via
helicopter in an attempt
to find and destroy the
threatening forces and
resolve the mystery that
has engulfed this once
peaceful land. Flying at
high altitude to avoid
being shot down like others
before you, your copter
mysteriously explodes in the
air as you barely escape,
with no possible contact
with the outside world.
Scared as hell, you descend
into the heart of karnak...
Home to the celebrated
burial crypt of the great
King Ramses.
",TXT_EX_CINEMA1,,,,,,,,,,,,,,,,,,,,,,
"An evil force known as the
Kilmaat has besieged the
sanctity of my palace and
is pulling at the very
tendrils of my existence.
These forces intend to
enslave me by reanimating
my preserved corpse. I have
protected my corpse with a
genetic key. If you are
unsuccessful I cannot
protect civilization, and
chaos will prevail. I am
being torn between worlds
and this insidious
experiment must be stopped.
",TXT_EX_CINEMA1,,,,,,,,,,,,,,,,,,,,,,
"I have hidden a mystical
gauntlet at el kab that will
channel my energy through
your hands. Find the
gauntlet and cross the aswan
high dam to defeat the evil
beast set.
",TXT_EX_CINEMA2,,,,,,,,,,,,,,,,,,,,,,
"Set was a formidable foe.
No mortal has even conquered
their own fear, much less
entered mortal battle and
taken his life.
",TXT_EX_CINEMA3,,,,,,,,,,,,,,,,,,,,,,
"You've made it halfway toward
fullfilling your destiny.
The Kilmaat are growing
restless with your progress.
Seek out a temple in this
citadel where I will provide
more information.
",TXT_EX_CINEMA4,,,,,,,,,,,,,,,,,,,,,,
"the Kilmaat race has
continued their monsterous
animal-human experiments in
an effort to solve the key of
animating my corpse. The
victory defeating set didn't
slow you down as much as
they had planned. They are
actively robbing a slave
girl of her life to create
another monsterous
abomination, combining human
and insect intent on slaying
you. Prepare yourself for
battle as she will be waiting
for you at the Luxor temple.
",TXT_EX_CINEMA5,,,,,,,,,,,,,,,,,,,,,,
"You've done well to defeat
Selkis. You have distracted
the Kilmaat with your
presence and they have
temporarily abandoned
animation of my corpse.
The alien queen Kilmaatikhan
has a personal vendetta
against you. Arrogance is
her weakness, and if you can
defeat Kilmaatikhan, the
battle will be won.
",TXT_EX_CINEMA6,,,,,,,,,,,,,,,,,,,,,,
"The Kilmaat have been
destroyed. Unfortunately,
your recklessness has
destroyed the Earth and all
of its inhabitants. All that
remains is a smoldering hunk
of rock.
",TXT_EX_CINEMA7,,,,,,,,,,,,,,,,,,,,,,
"The Kilmaat have been
defeated and you single
handedly saved the Earth
from destruction.
Your bravery and heroism
are legendary.
",TXT_EX_CINEMA8,,,,,,,,,,,,,,,,,,,,,,
1 default Identifier Remarks Filter eng enc ena enz eni ens enj enb enl ent enw cs de el eo es esm esn esg esc esa esd esv eso esr ess esf esl esy esz esb ese esh esi esu fi fr hu it jp ko nl pl pt ptg ro ru sr
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289