mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-15 20:20:54 +00:00
Merge branch 'back_to_basics2' into InputStuffs
This commit is contained in:
commit
92443806af
20 changed files with 156 additions and 59 deletions
|
@ -319,7 +319,7 @@ bool S_ChangeMusic(const char* musicname, int order, bool looping, bool force)
|
||||||
|
|
||||||
if (!force && PlayList.GetNumSongs())
|
if (!force && PlayList.GetNumSongs())
|
||||||
{ // Don't change if a playlist is active
|
{ // Don't change if a playlist is active
|
||||||
return false;
|
return true; // do not report an error here.
|
||||||
}
|
}
|
||||||
// Do game specific lookup.
|
// Do game specific lookup.
|
||||||
FString musicname_;
|
FString musicname_;
|
||||||
|
|
|
@ -105,9 +105,8 @@ CCMD(togglefollow)
|
||||||
CCMD(togglerotate)
|
CCMD(togglerotate)
|
||||||
{
|
{
|
||||||
am_rotate = !am_rotate;
|
am_rotate = !am_rotate;
|
||||||
auto msg = am_followplayer ? GStrings("TXT_ROTATE_ON") : GStrings("TXT_ROTATE_OFF");
|
auto msg = am_rotate ? GStrings("TXT_ROTATE_ON") : GStrings("TXT_ROTATE_OFF");
|
||||||
Printf(PRINT_NOTIFY, "%s\n", msg);
|
Printf(PRINT_NOTIFY, "%s\n", msg);
|
||||||
if (am_followplayer) follow_x = INT_MAX;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -213,7 +212,7 @@ void AutomapControl()
|
||||||
}
|
}
|
||||||
am_zoomdir = 0;
|
am_zoomdir = 0;
|
||||||
|
|
||||||
double j = interval * (120. / 1000);
|
double j = interval * 35. / gZoom;
|
||||||
|
|
||||||
if (buttonMap.ButtonDown(gamefunc_Enlarge_Screen))
|
if (buttonMap.ButtonDown(gamefunc_Enlarge_Screen))
|
||||||
gZoom += (int)fmulscale6(j, max(gZoom, 256));
|
gZoom += (int)fmulscale6(j, max(gZoom, 256));
|
||||||
|
@ -242,8 +241,8 @@ void AutomapControl()
|
||||||
momx += mulscale9(panhorz, sintable[(follow_a) & 2047]);
|
momx += mulscale9(panhorz, sintable[(follow_a) & 2047]);
|
||||||
momy += mulscale9(panhorz, sintable[(follow_a + 1536) & 2047]);
|
momy += mulscale9(panhorz, sintable[(follow_a + 1536) & 2047]);
|
||||||
|
|
||||||
follow_x += int((momx * j) / (gZoom * 4000.));
|
follow_x += int(momx * j);
|
||||||
follow_y += int((momy * j) / (gZoom * 4000.));
|
follow_y += int(momy * j);
|
||||||
|
|
||||||
if (x_min_bound == INT_MAX) CalcMapBounds();
|
if (x_min_bound == INT_MAX) CalcMapBounds();
|
||||||
follow_x = clamp(follow_x, x_min_bound, x_max_bound);
|
follow_x = clamp(follow_x, x_min_bound, x_max_bound);
|
||||||
|
|
|
@ -197,7 +197,7 @@ int Mus_Play(const char *mapname, const char *fn, bool loop)
|
||||||
|
|
||||||
if (!MusicEnabled())
|
if (!MusicEnabled())
|
||||||
{
|
{
|
||||||
return 0;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allow per level music substitution.
|
// Allow per level music substitution.
|
||||||
|
|
|
@ -676,7 +676,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
#define kTile654 654
|
#define kTile654 654
|
||||||
#define kTile655 655
|
#define kTile655 655
|
||||||
#define kTile656 656
|
#define kTile656 656
|
||||||
#define kTile657 657
|
#define kTileStatusBar 657
|
||||||
#define kTile658 658
|
#define kTile658 658
|
||||||
#define kTile659 659
|
#define kTile659 659
|
||||||
#define kTile660 660
|
#define kTile660 660
|
||||||
|
|
|
@ -545,8 +545,13 @@ private:
|
||||||
|
|
||||||
int flags = DI_ITEM_RELCENTER;
|
int flags = DI_ITEM_RELCENTER;
|
||||||
|
|
||||||
int x = ChunkXpos[nFrameBase];
|
double x = ChunkXpos[nFrameBase];
|
||||||
int y = ChunkYpos[nFrameBase] + ebx;
|
double y = ChunkYpos[nFrameBase] + ebx;
|
||||||
|
|
||||||
|
if (x > 0)
|
||||||
|
{
|
||||||
|
if (xoffset == 0) { x += 0.5; y += 0.5; }
|
||||||
|
}
|
||||||
|
|
||||||
if (hud_size <= Hud_StbarOverlay)
|
if (hud_size <= Hud_StbarOverlay)
|
||||||
{
|
{
|
||||||
|
@ -710,7 +715,7 @@ private:
|
||||||
{
|
{
|
||||||
// draw the main bar itself
|
// draw the main bar itself
|
||||||
BeginStatusBar(320, 200, 40);
|
BeginStatusBar(320, 200, 40);
|
||||||
DrawStatusSequence(nStatusSeqOffset, 0, 0);
|
DrawGraphic(tileGetTexture(kTileStatusBar), 160, 200, DI_ITEM_CENTER_BOTTOM, 1, -1, -1, 1, 1);
|
||||||
}
|
}
|
||||||
else if (hud_size == Hud_Mini)
|
else if (hud_size == Hud_Mini)
|
||||||
{
|
{
|
||||||
|
|
|
@ -767,6 +767,7 @@ class DDukeLevelSummaryScreen : public DScreenJob
|
||||||
const char* lastmapname;
|
const char* lastmapname;
|
||||||
int gfx_offset;
|
int gfx_offset;
|
||||||
int bonuscnt = 0;
|
int bonuscnt = 0;
|
||||||
|
int speech = -1;
|
||||||
|
|
||||||
void SetTotalClock(int tc)
|
void SetTotalClock(int tc)
|
||||||
{
|
{
|
||||||
|
@ -911,7 +912,8 @@ public:
|
||||||
bonuscnt++;
|
bonuscnt++;
|
||||||
S_PlaySound(SHOTGUN_COCK, CHAN_AUTO, CHANF_UI);
|
S_PlaySound(SHOTGUN_COCK, CHAN_AUTO, CHANF_UI);
|
||||||
static const uint16_t speeches[] = { BONUS_SPEECH1, BONUS_SPEECH2, BONUS_SPEECH3, BONUS_SPEECH4};
|
static const uint16_t speeches[] = { BONUS_SPEECH1, BONUS_SPEECH2, BONUS_SPEECH3, BONUS_SPEECH4};
|
||||||
S_PlaySound(speeches[(rand() & 3)], CHAN_AUTO, CHANF_UI, 1);
|
speech = speeches[(rand() & 3)];
|
||||||
|
S_PlaySound(speech, CHAN_AUTO, CHANF_UI, 1);
|
||||||
}
|
}
|
||||||
case 1:
|
case 1:
|
||||||
case 4:
|
case 4:
|
||||||
|
@ -926,7 +928,7 @@ public:
|
||||||
}
|
}
|
||||||
else if (currentclock > (10240 + 120L))
|
else if (currentclock > (10240 + 120L))
|
||||||
{
|
{
|
||||||
if (!skiprequest && soundEngine->GetSoundPlayingInfo(SOURCE_None, nullptr, -1)) return 1;
|
if (speech > 0 && !skiprequest && soundEngine->GetSoundPlayingInfo(SOURCE_None, nullptr, speech)) return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -358,6 +358,7 @@ class DRRLevelSummaryScreen : public DScreenJob
|
||||||
const char* lastmapname;
|
const char* lastmapname;
|
||||||
int gfx_offset;
|
int gfx_offset;
|
||||||
int bonuscnt = 0;
|
int bonuscnt = 0;
|
||||||
|
int speech = -1;
|
||||||
|
|
||||||
void SetTotalClock(int tc)
|
void SetTotalClock(int tc)
|
||||||
{
|
{
|
||||||
|
@ -502,13 +503,14 @@ public:
|
||||||
{
|
{
|
||||||
bonuscnt++;
|
bonuscnt++;
|
||||||
S_PlaySound(425, CHAN_AUTO, CHANF_UI);
|
S_PlaySound(425, CHAN_AUTO, CHANF_UI);
|
||||||
S_PlaySound(BONUS_SPEECH1 + (rand() & 3), CHAN_AUTO, CHANF_UI);
|
speech = BONUS_SPEECH1 + (rand() & 3);
|
||||||
|
S_PlaySound(speech, CHAN_AUTO, CHANF_UI);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (currentclock > (10240 + 120L))
|
else if (currentclock > (10240 + 120L))
|
||||||
{
|
{
|
||||||
if (!skiprequest && soundEngine->GetSoundPlayingInfo(SOURCE_None, nullptr, -1)) return 1;
|
if (speech > 0 && !skiprequest && soundEngine->GetSoundPlayingInfo(SOURCE_None, nullptr, speech)) return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -473,7 +473,7 @@ SKIPWALLCHECK:
|
||||||
hittype[j].picnum = FLAMETHROWERFLAME;
|
hittype[j].picnum = FLAMETHROWERFLAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s->picnum != SHRINKSPARK && (!isWorldTour() && s->picnum != LAVAPOOL))
|
if (s->picnum != SHRINKSPARK && (!isWorldTour() || s->picnum != LAVAPOOL))
|
||||||
{
|
{
|
||||||
if (d < r / 3)
|
if (d < r / 3)
|
||||||
{
|
{
|
||||||
|
@ -491,7 +491,7 @@ SKIPWALLCHECK:
|
||||||
hittype[j].extra = hp1 + (krand() % (hp2 - hp1));
|
hittype[j].extra = hp1 + (krand() % (hp2 - hp1));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sprite[j].picnum != TANK && sprite[j].picnum != ROTATEGUN && sprite[j].picnum != RECON && sprite[j].picnum != BOSS1 && sprite[j].picnum != BOSS2 && sprite[j].picnum != BOSS3 && sprite[j].picnum != BOSS4)
|
if (sprite[j].picnum != TANK && sprite[j].picnum != ROTATEGUN && sprite[j].picnum != RECON && !bossguy(&sprite[j]))
|
||||||
{
|
{
|
||||||
if (sj->xvel < 0) sj->xvel = 0;
|
if (sj->xvel < 0) sj->xvel = 0;
|
||||||
sj->xvel += (s->extra << 2);
|
sj->xvel += (s->extra << 2);
|
||||||
|
@ -2807,6 +2807,8 @@ static void flamethrowerflame(int i)
|
||||||
int dax = s->x;
|
int dax = s->x;
|
||||||
int day = s->y;
|
int day = s->y;
|
||||||
int daz = s->z;
|
int daz = s->z;
|
||||||
|
int xvel = s->xvel;
|
||||||
|
int zvel = s->zvel;
|
||||||
|
|
||||||
getglobalz(i);
|
getglobalz(i);
|
||||||
|
|
||||||
|
@ -2823,8 +2825,8 @@ static void flamethrowerflame(int i)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
j = fi.movesprite(i, (s->xvel * (sintable[(s->ang + 512) & 2047])) >> 14,
|
j = fi.movesprite(i, (xvel * (sintable[(s->ang + 512) & 2047])) >> 14,
|
||||||
(s->xvel * (sintable[s->ang & 2047])) >> 14, s->zvel, CLIPMASK1);
|
(xvel * (sintable[s->ang & 2047])) >> 14, s->zvel, CLIPMASK1);
|
||||||
|
|
||||||
if (s->sectnum < 0)
|
if (s->sectnum < 0)
|
||||||
{
|
{
|
||||||
|
@ -2849,7 +2851,7 @@ static void flamethrowerflame(int i)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (j != 0) {
|
if (j != 0) {
|
||||||
s->xvel = s->yvel = 0;
|
s->xvel = s->yvel = s->zvel = 0;
|
||||||
if ((j & kHitTypeMask) == kHitSprite)
|
if ((j & kHitTypeMask) == kHitSprite)
|
||||||
{
|
{
|
||||||
j &= (MAXSPRITES - 1);
|
j &= (MAXSPRITES - 1);
|
||||||
|
|
|
@ -301,6 +301,7 @@ enum sflags_t
|
||||||
SFLAG_BADGUY = 0x00000020,
|
SFLAG_BADGUY = 0x00000020,
|
||||||
SFLAG_NOPAL = 0x00000040,
|
SFLAG_NOPAL = 0x00000040,
|
||||||
SFLAG_FORCEAUTOAIM = 0x00000080,
|
SFLAG_FORCEAUTOAIM = 0x00000080,
|
||||||
|
SFLAG_BOSS = 0x00000100,
|
||||||
SFLAG_USEACTIVATOR = 0x00000200,
|
SFLAG_USEACTIVATOR = 0x00000200,
|
||||||
SFLAG_NOFLOORSHADOW = 0x00001000, // for temp. internal use, per-tile flag not checked
|
SFLAG_NOFLOORSHADOW = 0x00001000, // for temp. internal use, per-tile flag not checked
|
||||||
SFLAG_BADGUYSTAYPUT = 0x00008000,
|
SFLAG_BADGUYSTAYPUT = 0x00008000,
|
||||||
|
|
|
@ -81,13 +81,14 @@ void initactorflags_d()
|
||||||
|
|
||||||
// Some flags taken from RedNukem's init code. This is a good start as any to reduce the insane dependency on tile numbers for making decisions in the play code. A lot more will be added here later.
|
// Some flags taken from RedNukem's init code. This is a good start as any to reduce the insane dependency on tile numbers for making decisions in the play code. A lot more will be added here later.
|
||||||
setflag(SFLAG_NODAMAGEPUSH, { TANK, BOSS1, BOSS2, BOSS3, BOSS4, RECON, ROTATEGUN });
|
setflag(SFLAG_NODAMAGEPUSH, { TANK, BOSS1, BOSS2, BOSS3, BOSS4, RECON, ROTATEGUN });
|
||||||
|
setflag(SFLAG_BOSS, { BOSS1, BOSS2, BOSS3, BOSS4 });
|
||||||
setflag(SFLAG_NOWATERDIP, { OCTABRAIN, COMMANDER, DRONE });
|
setflag(SFLAG_NOWATERDIP, { OCTABRAIN, COMMANDER, DRONE });
|
||||||
setflag(SFLAG_GREENSLIMEFOOD, { LIZTROOP, LIZMAN, PIGCOP, NEWBEAST });
|
setflag(SFLAG_GREENSLIMEFOOD, { LIZTROOP, LIZMAN, PIGCOP, NEWBEAST });
|
||||||
|
|
||||||
if (isWorldTour())
|
if (isWorldTour())
|
||||||
{
|
{
|
||||||
setflag(SFLAG_INTERNAL_BADGUY, { FIREFLY });
|
setflag(SFLAG_INTERNAL_BADGUY, { FIREFLY });
|
||||||
setflag(SFLAG_INTERNAL_BADGUY|SFLAG_NODAMAGEPUSH, { BOSS5, BOSS5STAYPUT, BOSS2STAYPUT, BOSS3STAYPUT });
|
setflag(SFLAG_INTERNAL_BADGUY|SFLAG_NODAMAGEPUSH|SFLAG_BOSS, { BOSS5 });
|
||||||
}
|
}
|
||||||
|
|
||||||
settileflag(TFLAG_WALLSWITCH, {
|
settileflag(TFLAG_WALLSWITCH, {
|
||||||
|
|
|
@ -1799,7 +1799,7 @@ int ConCompiler::parsecommand()
|
||||||
max_ammo_amount[8] = parseone();
|
max_ammo_amount[8] = parseone();
|
||||||
max_ammo_amount[9] = parseone();
|
max_ammo_amount[9] = parseone();
|
||||||
if (isPlutoPak() || isRR()) max_ammo_amount[11] = parseone();
|
if (isPlutoPak() || isRR()) max_ammo_amount[11] = parseone();
|
||||||
if (isRR() || isWorldTour()) max_ammo_amount[12] = parseone();
|
if (isRR()) max_ammo_amount[12] = parseone();
|
||||||
camerashitable = parseone();
|
camerashitable = parseone();
|
||||||
numfreezebounces = parseone();
|
numfreezebounces = parseone();
|
||||||
freezerhurtowner = parseone();
|
freezerhurtowner = parseone();
|
||||||
|
@ -1808,6 +1808,7 @@ int ConCompiler::parsecommand()
|
||||||
spriteqamount = clamp(parseone(), 0, 1024);
|
spriteqamount = clamp(parseone(), 0, 1024);
|
||||||
lasermode = parseone();
|
lasermode = parseone();
|
||||||
}
|
}
|
||||||
|
if (isWorldTour()) max_ammo_amount[12] = parseone();
|
||||||
if (isRRRA())
|
if (isRRRA())
|
||||||
{
|
{
|
||||||
max_ammo_amount[13] = parseone();
|
max_ammo_amount[13] = parseone();
|
||||||
|
|
|
@ -175,8 +175,7 @@ int animateknuckles(int gs, int snum, double hard_landing, double look_anghalf,
|
||||||
else
|
else
|
||||||
pal = sector[ps[snum].cursectnum].floorpal;
|
pal = sector[ps[snum].cursectnum].floorpal;
|
||||||
|
|
||||||
auto pic = isWorldTour() ? CRACKKNUCKLESWIDE : CRACKKNUCKLES;
|
hud_drawpal(160 + (getavel(snum) / 16.) - look_anghalf, looking_arc + 180 - horiz16th, CRACKKNUCKLES + knuckle_frames[ps[snum].knuckle_incs >> 1], gs, 4, pal);
|
||||||
hud_drawpal(160 + (getavel(snum) / 16.) - look_anghalf, looking_arc + 180 - horiz16th, pic + knuckle_frames[ps[snum].knuckle_incs >> 1], gs, 4, pal);
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -477,7 +476,7 @@ void displayweapon_d(int snum, double smoothratio)
|
||||||
if (*kb < (isWW2GI() ? aplWeaponTotalTime[RPG_WEAPON][snum] : 8))
|
if (*kb < (isWW2GI() ? aplWeaponTotalTime[RPG_WEAPON][snum] : 8))
|
||||||
{
|
{
|
||||||
hud_drawpal(weapon_xoffset + 164, (looking_arc * 2.) + 176 - gun_pos,
|
hud_drawpal(weapon_xoffset + 164, (looking_arc * 2.) + 176 - gun_pos,
|
||||||
rpgpic + (*kb >> 1), gs, o | pin, pal);
|
RPGGUN + (*kb >> 1), gs, o | pin, pal);
|
||||||
}
|
}
|
||||||
else if (isWW2GI())
|
else if (isWW2GI())
|
||||||
{
|
{
|
||||||
|
@ -852,46 +851,46 @@ void displayweapon_d(int snum, double smoothratio)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pin = (isWW2GI() || isWorldTour() || (duke3d_globalflags & DUKE3D_NO_WIDESCREEN_PINNING)) ? 0 : RS_ALIGN_R;
|
pin = (isWW2GI() || isWorldTour() || (duke3d_globalflags & DUKE3D_NO_WIDESCREEN_PINNING)) ? 0 : RS_ALIGN_R;
|
||||||
auto pic = isWorldTour() ? FIRSTGUNRELOAD - 4 : FIRSTGUN; // I do not want to edit all code below
|
auto pic_5 = isWorldTour() ? FIRSTGUNRELOADWIDE : FIRSTGUN+5;
|
||||||
|
|
||||||
const int WEAPON2_RELOAD_TIME = 50;
|
const int WEAPON2_RELOAD_TIME = 50;
|
||||||
auto reload_time = isWW2GI() ? aplWeaponReload[PISTOL_WEAPON][snum] : WEAPON2_RELOAD_TIME;
|
auto reload_time = isWW2GI() ? aplWeaponReload[PISTOL_WEAPON][snum] : WEAPON2_RELOAD_TIME;
|
||||||
if (*kb < 10)
|
if (*kb < 10)
|
||||||
hud_drawpal(194 - look_anghalf, looking_arc + 230 - gun_pos, pic + 4, gs, o|pin, pal);
|
hud_drawpal(194 - look_anghalf, looking_arc + 230 - gun_pos, FIRSTGUN + 4, gs, o|pin, pal);
|
||||||
else if (*kb < 15)
|
else if (*kb < 15)
|
||||||
{
|
{
|
||||||
hud_drawpal(244 - (kickback_pic * 8.) - look_anghalf, looking_arc + 130 - gun_pos + (kickback_pic * 16.), pic + 6, gs, o | pin, pal);
|
hud_drawpal(244 - (kickback_pic * 8.) - look_anghalf, looking_arc + 130 - gun_pos + (kickback_pic * 16.), FIRSTGUN + 6, gs, o | pin, pal);
|
||||||
hud_drawpal(224 - look_anghalf, looking_arc + 220 - gun_pos, pic + 5, gs, o | pin, pal);
|
hud_drawpal(224 - look_anghalf, looking_arc + 220 - gun_pos, pic_5, gs, o | pin, pal);
|
||||||
}
|
}
|
||||||
else if (*kb < 20)
|
else if (*kb < 20)
|
||||||
{
|
{
|
||||||
hud_drawpal(124 + (kickback_pic * 2.) - look_anghalf, looking_arc + 430 - gun_pos - (kickback_pic * 8.), pic + 6, gs, o | pin, pal);
|
hud_drawpal(124 + (kickback_pic * 2.) - look_anghalf, looking_arc + 430 - gun_pos - (kickback_pic * 8.), FIRSTGUN + 6, gs, o | pin, pal);
|
||||||
hud_drawpal(224 - look_anghalf, looking_arc + 220 - gun_pos, pic + 5, gs, o | pin, pal);
|
hud_drawpal(224 - look_anghalf, looking_arc + 220 - gun_pos, pic_5, gs, o | pin, pal);
|
||||||
}
|
}
|
||||||
else if (*kb < (reload_time - 12))
|
else if (*kb < (reload_time - 12))
|
||||||
{
|
{
|
||||||
hud_drawpal(184 - look_anghalf, looking_arc + 235 - gun_pos, pic + 8, gs, o | pin, pal);
|
hud_drawpal(184 - look_anghalf, looking_arc + 235 - gun_pos, FIRSTGUN + 8, gs, o | pin, pal);
|
||||||
hud_drawpal(224 - look_anghalf, looking_arc + 210 - gun_pos, pic + 5, gs, o | pin, pal);
|
hud_drawpal(224 - look_anghalf, looking_arc + 210 - gun_pos, pic_5, gs, o | pin, pal);
|
||||||
}
|
}
|
||||||
else if (*kb < (reload_time - 6))
|
else if (*kb < (reload_time - 6))
|
||||||
{
|
{
|
||||||
hud_drawpal(164 - look_anghalf, looking_arc + 245 - gun_pos, pic + 8, gs, o | pin, pal);
|
hud_drawpal(164 - look_anghalf, looking_arc + 245 - gun_pos, FIRSTGUN + 8, gs, o | pin, pal);
|
||||||
hud_drawpal(224 - look_anghalf, looking_arc + 220 - gun_pos, pic + 5, gs, o | pin, pal);
|
hud_drawpal(224 - look_anghalf, looking_arc + 220 - gun_pos, pic_5, gs, o | pin, pal);
|
||||||
}
|
}
|
||||||
else if (*kb < (reload_time))
|
else if (*kb < (reload_time))
|
||||||
hud_drawpal(194 - look_anghalf, looking_arc + 235 - gun_pos, pic + 5, gs, o, pal);
|
hud_drawpal(194 - look_anghalf, looking_arc + 235 - gun_pos, pic_5, gs, o, pal);
|
||||||
else if (*kb < 23)
|
else if (*kb < 23)
|
||||||
{
|
{
|
||||||
hud_drawpal(184 - look_anghalf, looking_arc + 235 - gun_pos, pic + 8, gs, o | pin, pal);
|
hud_drawpal(184 - look_anghalf, looking_arc + 235 - gun_pos, FIRSTGUN + 8, gs, o | pin, pal);
|
||||||
hud_drawpal(224 - look_anghalf, looking_arc + 210 - gun_pos, pic + 5, gs, o | pin, pal);
|
hud_drawpal(224 - look_anghalf, looking_arc + 210 - gun_pos, pic_5, gs, o | pin, pal);
|
||||||
}
|
}
|
||||||
else if (*kb < 25)
|
else if (*kb < 25)
|
||||||
{
|
{
|
||||||
hud_drawpal(164 - look_anghalf, looking_arc + 245 - gun_pos, pic + 8, gs, o | pin, pal);
|
hud_drawpal(164 - look_anghalf, looking_arc + 245 - gun_pos, FIRSTGUN + 8, gs, o | pin, pal);
|
||||||
hud_drawpal(224 - look_anghalf, looking_arc + 220 - gun_pos, pic + 5, gs, o | pin, pal);
|
hud_drawpal(224 - look_anghalf, looking_arc + 220 - gun_pos, pic_5, gs, o | pin, pal);
|
||||||
}
|
}
|
||||||
else if (*kb < 27)
|
else if (*kb < 27)
|
||||||
hud_drawpal(194 - look_anghalf, looking_arc + 235 - gun_pos, pic + 5, gs, o | pin, pal);
|
hud_drawpal(194 - look_anghalf, looking_arc + 235 - gun_pos, pic_5, gs, o | pin, pal);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1100,10 +1099,10 @@ void displayweapon_d(int snum, double smoothratio)
|
||||||
looking_arc += rand() & 3;
|
looking_arc += rand() & 3;
|
||||||
}
|
}
|
||||||
gun_pos -= 16;
|
gun_pos -= 16;
|
||||||
hud_drawpal(weapon_xoffset + 210 - look_anghalf, looking_arc + 261 - gun_pos, pic + 2, -32, o|pin, pal);
|
hud_drawpal(weapon_xoffset + 210 - look_anghalf, looking_arc + 261 - gun_pos, isWorldTour() ? FREEZEFIREWIDE : FREEZE + 2, -32, o|pin, pal);
|
||||||
hud_drawpal(weapon_xoffset + 210 - look_anghalf, looking_arc + 235 - gun_pos, pic + 3 + cat_frames[*kb % 6], -32, o | pin, pal);
|
hud_drawpal(weapon_xoffset + 210 - look_anghalf, looking_arc + 235 - gun_pos, FREEZE + 3 + cat_frames[*kb % 6], -32, o | pin, pal);
|
||||||
}
|
}
|
||||||
else hud_drawpal(weapon_xoffset + 210 - look_anghalf, looking_arc + 261 - gun_pos, pic, gs, o | pin, pal);
|
else hud_drawpal(weapon_xoffset + 210 - look_anghalf, looking_arc + 261 - gun_pos, isWorldTour() ? FREEZEWIDE : FREEZE, gs, o | pin, pal);
|
||||||
};
|
};
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
|
@ -27,6 +27,16 @@ inline int badguy(void const * const pSprite)
|
||||||
return badguypic(((uspritetype const *) pSprite)->picnum);
|
return badguypic(((uspritetype const *) pSprite)->picnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline int bossguypic(int const tileNum)
|
||||||
|
{
|
||||||
|
return ((actorinfo[tileNum].flags & (SFLAG_BOSS)) != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline int bossguy(void const* const pSprite)
|
||||||
|
{
|
||||||
|
return badguypic(((uspritetype const*)pSprite)->picnum);
|
||||||
|
}
|
||||||
|
|
||||||
inline int actorflag(int spritenum, int mask)
|
inline int actorflag(int spritenum, int mask)
|
||||||
{
|
{
|
||||||
return (((actorinfo[sprite[spritenum].picnum].flags/* ^ hittype[spritenum].flags*/) & mask) != 0);
|
return (((actorinfo[sprite[spritenum].picnum].flags/* ^ hittype[spritenum].flags*/) & mask) != 0);
|
||||||
|
|
|
@ -158,7 +158,7 @@ void shoot_d(int i, int atwith)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
zvel = 98 * (100 + ps[p].gethorizsum());
|
zvel = 98 * (100 - ps[p].gethorizsum());
|
||||||
sx += sintable[(sa + 860) & 0x7FF] / 448;
|
sx += sintable[(sa + 860) & 0x7FF] / 448;
|
||||||
sy += sintable[(sa + 348) & 0x7FF] / 448;
|
sy += sintable[(sa + 348) & 0x7FF] / 448;
|
||||||
sz += (3 << 8);
|
sz += (3 << 8);
|
||||||
|
@ -849,11 +849,28 @@ void shoot_d(int i, int atwith)
|
||||||
}
|
}
|
||||||
else if (s->picnum == BOSS2)
|
else if (s->picnum == BOSS2)
|
||||||
{
|
{
|
||||||
|
int xoffs = sintable[sa & 2047] / 56;
|
||||||
|
int yoffs = sintable[(sa + 1024 + 512) & 2047] / 56;
|
||||||
|
int aoffs = 8 + (krand() & 255) - 128;
|
||||||
|
|
||||||
|
if (isWorldTour()) { // Twentieth Anniversary World Tour
|
||||||
|
int siz = sprite[i].yrepeat;
|
||||||
|
xoffs = Scale(xoffs, siz, 80);
|
||||||
|
yoffs = Scale(yoffs, siz, 80);
|
||||||
|
aoffs = Scale(aoffs, siz, 80);
|
||||||
|
}
|
||||||
|
|
||||||
|
sprite[j].x -= xoffs;
|
||||||
|
sprite[j].y -= yoffs;
|
||||||
|
sprite[j].ang -= aoffs;
|
||||||
|
|
||||||
sprite[j].x -= sintable[sa & 2047] / 56;
|
sprite[j].x -= sintable[sa & 2047] / 56;
|
||||||
sprite[j].y -= sintable[(sa + 1024 + 512) & 2047] / 56;
|
sprite[j].y -= sintable[(sa + 1024 + 512) & 2047] / 56;
|
||||||
sprite[j].ang -= 8 + (krand() & 255) - 128;
|
sprite[j].ang -= 8 + (krand() & 255) - 128;
|
||||||
sprite[j].xrepeat = 24;
|
sprite[j].xrepeat = 24;
|
||||||
sprite[j].yrepeat = 24;
|
sprite[j].yrepeat = 24;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (atwith != FREEZEBLAST)
|
else if (atwith != FREEZEBLAST)
|
||||||
{
|
{
|
||||||
|
|
|
@ -380,12 +380,14 @@ public:
|
||||||
|
|
||||||
void Statusbar(int snum)
|
void Statusbar(int snum)
|
||||||
{
|
{
|
||||||
|
int tile = hud_size < Hud_StbarOverlay ? TILE_BOTTOMSTATUSBAR : BOTTOMSTATUSBAR; // always use the narrow version for the overlay.
|
||||||
auto p = &ps[snum];
|
auto p = &ps[snum];
|
||||||
int h = tilesiz[TILE_BOTTOMSTATUSBAR].y;
|
int h = tilesiz[tile].y;
|
||||||
int top = 200 - h;
|
int top = 200 - h;
|
||||||
|
int left = (320 - tilesiz[tile].x) / 2;
|
||||||
BeginStatusBar(320, 200, h);
|
BeginStatusBar(320, 200, h);
|
||||||
DrawInventory(p, 160, 154, 0);
|
DrawInventory(p, 160, 154, 0);
|
||||||
DrawGraphic(tileGetTexture(TILE_BOTTOMSTATUSBAR), 0, top, DI_ITEM_LEFT_TOP, 1, -1, -1, 1, 1);
|
DrawGraphic(tileGetTexture(tile), left, top, DI_ITEM_LEFT_TOP, 1, -1, -1, 1, 1);
|
||||||
|
|
||||||
FString format;
|
FString format;
|
||||||
|
|
||||||
|
|
|
@ -1381,6 +1381,9 @@ void checkhitsprite_d(int i, int sn)
|
||||||
{
|
{
|
||||||
if (badguy(&sprite[i]) == 1)
|
if (badguy(&sprite[i]) == 1)
|
||||||
{
|
{
|
||||||
|
if (isWorldTour() && sprite[i].picnum == FIREFLY && sprite[i].xrepeat < 48)
|
||||||
|
break;
|
||||||
|
|
||||||
if (sprite[sn].picnum == RPG) sprite[sn].extra <<= 1;
|
if (sprite[sn].picnum == RPG) sprite[sn].extra <<= 1;
|
||||||
|
|
||||||
if ((sprite[i].picnum != DRONE) && (sprite[i].picnum != ROTATEGUN) && (sprite[i].picnum != COMMANDER) && (sprite[i].picnum < GREENSLIME || sprite[i].picnum > GREENSLIME + 7))
|
if ((sprite[i].picnum != DRONE) && (sprite[i].picnum != ROTATEGUN) && (sprite[i].picnum != COMMANDER) && (sprite[i].picnum < GREENSLIME || sprite[i].picnum > GREENSLIME + 7))
|
||||||
|
@ -1407,7 +1410,7 @@ void checkhitsprite_d(int i, int sn)
|
||||||
fi.shoot(i, BLOODSPLAT4);
|
fi.shoot(i, BLOODSPLAT4);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sprite[i].picnum != TANK && sprite[i].picnum != BOSS1 && sprite[i].picnum != BOSS4 && sprite[i].picnum != BOSS2 && sprite[i].picnum != BOSS3 && sprite[i].picnum != RECON && sprite[i].picnum != ROTATEGUN)
|
if (sprite[i].picnum != TANK && !bossguy(&sprite[i]) && sprite[i].picnum != RECON && sprite[i].picnum != ROTATEGUN)
|
||||||
{
|
{
|
||||||
if ((sprite[i].cstat & 48) == 0)
|
if ((sprite[i].cstat & 48) == 0)
|
||||||
sprite[i].ang = (sprite[sn].ang + 1024) & 2047;
|
sprite[i].ang = (sprite[sn].ang + 1024) & 2047;
|
||||||
|
@ -1431,6 +1434,17 @@ void checkhitsprite_d(int i, int sn)
|
||||||
if (sprite[sn].picnum == FREEZEBLAST && ((sprite[i].picnum == APLAYER && sprite[i].pal == 1) || (freezerhurtowner == 0 && sprite[sn].owner == i)))
|
if (sprite[sn].picnum == FREEZEBLAST && ((sprite[i].picnum == APLAYER && sprite[i].pal == 1) || (freezerhurtowner == 0 && sprite[sn].owner == i)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
int hitpic = sprite[sn].picnum;
|
||||||
|
if (sprite[sprite[sn].owner].picnum == APLAYER)
|
||||||
|
{
|
||||||
|
if (sprite[i].picnum == APLAYER && ud.coop != 0 && ud.ffire == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isWorldTour() && hitpic == FIREBALL && sprite[sprite[i].owner].picnum != FIREBALL)
|
||||||
|
hitpic = FLAMETHROWERFLAME;
|
||||||
|
}
|
||||||
|
|
||||||
hittype[i].picnum = sprite[sn].picnum;
|
hittype[i].picnum = sprite[sn].picnum;
|
||||||
hittype[i].extra += sprite[sn].extra;
|
hittype[i].extra += sprite[sn].extra;
|
||||||
hittype[i].ang = sprite[sn].ang;
|
hittype[i].ang = sprite[sn].ang;
|
||||||
|
|
|
@ -587,12 +587,44 @@ void S_MenuSound(void)
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
||||||
|
CVAR(Bool, wt_forcemidi, false, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) // quick hack to disable the oggs, which are of lower quality than playing the MIDIs with a good synth and sound font.
|
||||||
|
|
||||||
static bool cd_disabled = false; // This is in case mus_redbook is enabled but no tracks found so that the regular music system can be switched on.
|
static bool cd_disabled = false; // This is in case mus_redbook is enabled but no tracks found so that the regular music system can be switched on.
|
||||||
|
|
||||||
|
static void MusPlay(const char* label, const char* music, bool loop)
|
||||||
|
{
|
||||||
|
if (isWorldTour())
|
||||||
|
{
|
||||||
|
if (wt_forcemidi)
|
||||||
|
{
|
||||||
|
FString alternative = music;
|
||||||
|
alternative.Substitute(".ogg", ".mid");
|
||||||
|
int num = fileSystem.FindFile(alternative);
|
||||||
|
if (num >= 0)
|
||||||
|
{
|
||||||
|
int file = fileSystem.GetFileContainer(num);
|
||||||
|
if (file == 1)
|
||||||
|
{
|
||||||
|
Mus_Play(label, alternative, loop);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int result = Mus_Play(label, music, loop);
|
||||||
|
// do not remain silent if playing World Tour when the user has deleted the music.
|
||||||
|
if (!result && isWorldTour())
|
||||||
|
{
|
||||||
|
FString alternative = music;
|
||||||
|
alternative.Substitute(".ogg", ".mid");
|
||||||
|
Mus_Play(label, alternative, loop);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void S_PlayLevelMusic(MapRecord *mi)
|
void S_PlayLevelMusic(MapRecord *mi)
|
||||||
{
|
{
|
||||||
if (isRR() && mi->music.IsEmpty() && mus_redbook && !cd_disabled) return;
|
if (isRR() && mi->music.IsEmpty() && mus_redbook && !cd_disabled) return;
|
||||||
Mus_Play(mi->labelName, mi->music, true);
|
MusPlay(mi->labelName, mi->music, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void S_PlaySpecialMusic(unsigned int m)
|
void S_PlaySpecialMusic(unsigned int m)
|
||||||
|
@ -601,7 +633,7 @@ void S_PlaySpecialMusic(unsigned int m)
|
||||||
auto& musicfn = specialmusic[m];
|
auto& musicfn = specialmusic[m];
|
||||||
if (musicfn.IsNotEmpty())
|
if (musicfn.IsNotEmpty())
|
||||||
{
|
{
|
||||||
Mus_Play(nullptr, musicfn, true);
|
MusPlay(nullptr, musicfn, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -624,6 +624,14 @@ int spawn_d(int j, int pn)
|
||||||
sp->z = x-(12<<8);
|
sp->z = x-(12<<8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (sp->picnum == ONFIRE)
|
||||||
|
{
|
||||||
|
sp->x += krand() % 256 - 128;
|
||||||
|
sp->y += krand() % 256 - 128;
|
||||||
|
sp->z -= krand() % 10240;
|
||||||
|
sp->cstat |= 0x80;
|
||||||
|
}
|
||||||
|
|
||||||
changespritestat(i,5);
|
changespritestat(i,5);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1009,7 +1009,7 @@ OptionMenu "AutomapOptions"
|
||||||
Submenu "$MAPCNTRLMNU_CONTROLS" , "MapControlsMenu"
|
Submenu "$MAPCNTRLMNU_CONTROLS" , "MapControlsMenu"
|
||||||
StaticText ""
|
StaticText ""
|
||||||
Option "$AUTOMAPMNU_ROTATE", "am_rotate", "OnOff"
|
Option "$AUTOMAPMNU_ROTATE", "am_rotate", "OnOff"
|
||||||
Option "$AUTOMAPMNU_FOLLOW", "am_follow", "OnOff"
|
Option "$AUTOMAPMNU_FOLLOW", "am_followplayer", "OnOff"
|
||||||
|
|
||||||
// move map controls here.
|
// move map controls here.
|
||||||
// todo:
|
// todo:
|
||||||
|
|
|
@ -201,6 +201,8 @@ Apasă Y sau N.","Загрузить быстрое сохранение
|
||||||
Yes,TXT_YES,,,,Ano,Ja,Ναι,Jes,Sí,,Kyllä,Oui,Igen,Si,はい,네,Ja,Tak,Sim,,Da,Да,Да
|
Yes,TXT_YES,,,,Ano,Ja,Ναι,Jes,Sí,,Kyllä,Oui,Igen,Si,はい,네,Ja,Tak,Sim,,Da,Да,Да
|
||||||
No,TXT_NO,,,,Ne,Nein,Όχι,Ne,No,,Ei,Non,Nem,No,いいえ,아니요,Nee,Nie,Não,,Nu,Нет,Не
|
No,TXT_NO,,,,Ne,Nein,Όχι,Ne,No,,Ei,Non,Nem,No,いいえ,아니요,Nee,Nie,Não,,Nu,Нет,Не
|
||||||
%s cheats,TXT_X_CHEATS,This is a gender sensitive message where %s represents the player,,,%s cheatuje,%s schummelt,@[art_gr] %s απατάει,%s trompas,%s hace trampa,,%s huijaa,%s triche.,,%s imbroglia,%s はチート使用,%s 이(가) 치트를 사용 함,%s bedriegt,%s oszukuje,%s está trapaceando,%s está a fazer batota,%s trișează,%s использует чит-коды,%s вара
|
%s cheats,TXT_X_CHEATS,This is a gender sensitive message where %s represents the player,,,%s cheatuje,%s schummelt,@[art_gr] %s απατάει,%s trompas,%s hace trampa,,%s huijaa,%s triche.,,%s imbroglia,%s はチート使用,%s 이(가) 치트를 사용 함,%s bedriegt,%s oszukuje,%s está trapaceando,%s está a fazer batota,%s trișează,%s использует чит-коды,%s вара
|
||||||
|
Rotate mode on,TXT_ROTATE_ON,,,,,Rotiermodus an,,,,,,,,,,,,,,,,,
|
||||||
|
Rotate mode off,TXT_ROTATE_OFF,,,,,Rotiermodus aus,,,,,,,,,,,,,,,,,
|
||||||
,,Savegame,,,,,,,,,,,,,,,,,,,,,
|
,,Savegame,,,,,,,,,,,,,,,,,,,,,
|
||||||
Empty slot,EMPTYSTRING,,,,Prázdný slot,nicht belegt,,Malplena Ingo,Ranura Vacía,,Tyhjä lokero,Emplacement Vide,Üres,Slot libero,空きスロット,빈 슬롯,Lege sleuf,Puste miejsce,Vazio,,Loc disponibil,Пустой слот,Празни слот
|
Empty slot,EMPTYSTRING,,,,Prázdný slot,nicht belegt,,Malplena Ingo,Ranura Vacía,,Tyhjä lokero,Emplacement Vide,Üres,Slot libero,空きスロット,빈 슬롯,Lege sleuf,Puste miejsce,Vazio,,Loc disponibil,Пустой слот,Празни слот
|
||||||
<New Save Game>,NEWSAVE,,,,<Nová uložená hra>,<Neuer Spielstand>,,<Novan Konservita Ludo>,<Nueva Partida Guardada>,,<Uusi tallennettu peli>,<Nouveau Fichier de Sauvegarde>,<Új mentés>,<Nuovo Salvataggio>,<新規セーブ>,<새로운 게임 저장>,<Nieuw sparen spel>,<Nowy zapis gry>,<Novo jogo salvo>,<Novo jogo gravado>,<Salvare Nouă>,<Новое сохранение>,<Нова сачувана игра>
|
<New Save Game>,NEWSAVE,,,,<Nová uložená hra>,<Neuer Spielstand>,,<Novan Konservita Ludo>,<Nueva Partida Guardada>,,<Uusi tallennettu peli>,<Nouveau Fichier de Sauvegarde>,<Új mentés>,<Nuovo Salvataggio>,<新規セーブ>,<새로운 게임 저장>,<Nieuw sparen spel>,<Nowy zapis gry>,<Novo jogo salvo>,<Novo jogo gravado>,<Salvare Nouă>,<Новое сохранение>,<Нова сачувана игра>
|
||||||
|
@ -2218,7 +2220,7 @@ into the heart of karnak...
|
||||||
Home to the celebrated
|
Home to the celebrated
|
||||||
burial crypt of the great
|
burial crypt of the great
|
||||||
King Ramses.
|
King Ramses.
|
||||||
",TXT_EX_CINEMA1,,,,,,,,,,,,,,,,,,,,,,
|
",TXT_EX_CINEMA1,Intro movie subtitles,,,,,,,,,,,,,,,,,,,,,
|
||||||
"An evil force known as the
|
"An evil force known as the
|
||||||
Kilmaat has besieged the
|
Kilmaat has besieged the
|
||||||
sanctity of my palace and
|
sanctity of my palace and
|
||||||
|
@ -2235,7 +2237,7 @@ chaos will prevail. I am
|
||||||
being torn between worlds
|
being torn between worlds
|
||||||
and this insidious
|
and this insidious
|
||||||
experiment must be stopped.
|
experiment must be stopped.
|
||||||
",TXT_EX_CINEMA1,,,,,,,,,,,,,,,,,,,,,,
|
",TXT_EX_CINEMA1,Level 1,,,,,,,,,,,,,,,,,,,,,
|
||||||
"I have hidden a mystical
|
"I have hidden a mystical
|
||||||
gauntlet at el kab that will
|
gauntlet at el kab that will
|
||||||
channel my energy through
|
channel my energy through
|
||||||
|
@ -2251,13 +2253,13 @@ restless with your progress.
|
||||||
Seek out a temple in this
|
Seek out a temple in this
|
||||||
citadel where I will provide
|
citadel where I will provide
|
||||||
more information.
|
more information.
|
||||||
",TXT_EX_CINEMA3,,,,,,,,,,,,,,,,,,,,,,
|
",TXT_EX_CINEMA3,After Level 10,,,,,,,,,,,,,,,,,,,,,
|
||||||
"Set was a formidable foe.
|
"Set was a formidable foe.
|
||||||
No mortal has even conquered
|
No mortal has even conquered
|
||||||
their own fear, much less
|
their own fear, much less
|
||||||
entered mortal battle and
|
entered mortal battle and
|
||||||
taken his life.
|
taken his life.
|
||||||
",TXT_EX_CINEMA4,,,,,,,,,,,,,,,,,,,,,,
|
",TXT_EX_CINEMA4,Before Level 11,,,,,,,,,,,,,,,,,,,,,
|
||||||
"the Kilmaat race has
|
"the Kilmaat race has
|
||||||
continued their monsterous
|
continued their monsterous
|
||||||
animal-human experiments in
|
animal-human experiments in
|
||||||
|
@ -2274,7 +2276,7 @@ and insect intent on slaying
|
||||||
you. Prepare yourself for
|
you. Prepare yourself for
|
||||||
battle as she will be waiting
|
battle as she will be waiting
|
||||||
for you at the Luxor temple.
|
for you at the Luxor temple.
|
||||||
",TXT_EX_CINEMA5,,,,,,,,,,,,,,,,,,,,,,
|
",TXT_EX_CINEMA5,In Level 11,,,,,,,,,,,,,,,,,,,,,
|
||||||
"You've done well to defeat
|
"You've done well to defeat
|
||||||
Selkis. You have distracted
|
Selkis. You have distracted
|
||||||
the Kilmaat with your
|
the Kilmaat with your
|
||||||
|
@ -2287,7 +2289,7 @@ against you. Arrogance is
|
||||||
her weakness, and if you can
|
her weakness, and if you can
|
||||||
defeat Kilmaatikhan, the
|
defeat Kilmaatikhan, the
|
||||||
battle will be won.
|
battle will be won.
|
||||||
",TXT_EX_CINEMA6,,,,,,,,,,,,,,,,,,,,,,
|
",TXT_EX_CINEMA6,After Level 15,,,,,,,,,,,,,,,,,,,,,
|
||||||
"The Kilmaat have been
|
"The Kilmaat have been
|
||||||
destroyed. Unfortunately,
|
destroyed. Unfortunately,
|
||||||
your recklessness has
|
your recklessness has
|
||||||
|
@ -2295,7 +2297,7 @@ destroyed the Earth and all
|
||||||
of its inhabitants. All that
|
of its inhabitants. All that
|
||||||
remains is a smoldering hunk
|
remains is a smoldering hunk
|
||||||
of rock.
|
of rock.
|
||||||
",TXT_EX_CINEMA7,,,,,,,,,,,,,,,,,,,,,,
|
",TXT_EX_CINEMA7,Bad ending,,,,,,,,,,,,,,,,,,,,,
|
||||||
"The Kilmaat have been
|
"The Kilmaat have been
|
||||||
defeated and you single
|
defeated and you single
|
||||||
handedly saved the Earth
|
handedly saved the Earth
|
||||||
|
@ -2305,7 +2307,7 @@ from destruction.
|
||||||
|
|
||||||
Your bravery and heroism
|
Your bravery and heroism
|
||||||
are legendary.
|
are legendary.
|
||||||
",TXT_EX_CINEMA8,,,,,,,,,,,,,,,,,,,,,,
|
",TXT_EX_CINEMA8,After Level 20,,,,,,,,,,,,,,,,,,,,,
|
||||||
"LOBOTOMY SOFTWARE, INC.,",TXT_EX_COPYRIGHT1,,,,,,,,,,,,,,,,,,,,,,
|
"LOBOTOMY SOFTWARE, INC.,",TXT_EX_COPYRIGHT1,,,,,,,,,,,,,,,,,,,,,,
|
||||||
"3D ENGINE BY 3D REALMS,",TXT_EX_COPYRIGHT2,,,,,,,,,,,,,,,,,,,,,,
|
"3D ENGINE BY 3D REALMS,",TXT_EX_COPYRIGHT2,,,,,,,,,,,,,,,,,,,,,,
|
||||||
Life Blood,TXT_EX_PICKUP1,,,,,,,,,,,,,,,,,,,,,,
|
Life Blood,TXT_EX_PICKUP1,,,,,,,,,,,,,,,,,,,,,,
|
||||||
|
|
|
Loading…
Reference in a new issue