mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-28 12:30:46 +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())
|
||||
{ // Don't change if a playlist is active
|
||||
return false;
|
||||
return true; // do not report an error here.
|
||||
}
|
||||
// Do game specific lookup.
|
||||
FString musicname_;
|
||||
|
|
|
@ -105,9 +105,8 @@ CCMD(togglefollow)
|
|||
CCMD(togglerotate)
|
||||
{
|
||||
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);
|
||||
if (am_followplayer) follow_x = INT_MAX;
|
||||
}
|
||||
|
||||
|
||||
|
@ -213,7 +212,7 @@ void AutomapControl()
|
|||
}
|
||||
am_zoomdir = 0;
|
||||
|
||||
double j = interval * (120. / 1000);
|
||||
double j = interval * 35. / gZoom;
|
||||
|
||||
if (buttonMap.ButtonDown(gamefunc_Enlarge_Screen))
|
||||
gZoom += (int)fmulscale6(j, max(gZoom, 256));
|
||||
|
@ -242,8 +241,8 @@ void AutomapControl()
|
|||
momx += mulscale9(panhorz, sintable[(follow_a) & 2047]);
|
||||
momy += mulscale9(panhorz, sintable[(follow_a + 1536) & 2047]);
|
||||
|
||||
follow_x += int((momx * j) / (gZoom * 4000.));
|
||||
follow_y += int((momy * j) / (gZoom * 4000.));
|
||||
follow_x += int(momx * j);
|
||||
follow_y += int(momy * j);
|
||||
|
||||
if (x_min_bound == INT_MAX) CalcMapBounds();
|
||||
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())
|
||||
{
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
// 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 kTile655 655
|
||||
#define kTile656 656
|
||||
#define kTile657 657
|
||||
#define kTileStatusBar 657
|
||||
#define kTile658 658
|
||||
#define kTile659 659
|
||||
#define kTile660 660
|
||||
|
|
|
@ -545,8 +545,13 @@ private:
|
|||
|
||||
int flags = DI_ITEM_RELCENTER;
|
||||
|
||||
int x = ChunkXpos[nFrameBase];
|
||||
int y = ChunkYpos[nFrameBase] + ebx;
|
||||
double x = ChunkXpos[nFrameBase];
|
||||
double y = ChunkYpos[nFrameBase] + ebx;
|
||||
|
||||
if (x > 0)
|
||||
{
|
||||
if (xoffset == 0) { x += 0.5; y += 0.5; }
|
||||
}
|
||||
|
||||
if (hud_size <= Hud_StbarOverlay)
|
||||
{
|
||||
|
@ -710,7 +715,7 @@ private:
|
|||
{
|
||||
// draw the main bar itself
|
||||
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)
|
||||
{
|
||||
|
|
|
@ -767,6 +767,7 @@ class DDukeLevelSummaryScreen : public DScreenJob
|
|||
const char* lastmapname;
|
||||
int gfx_offset;
|
||||
int bonuscnt = 0;
|
||||
int speech = -1;
|
||||
|
||||
void SetTotalClock(int tc)
|
||||
{
|
||||
|
@ -911,7 +912,8 @@ public:
|
|||
bonuscnt++;
|
||||
S_PlaySound(SHOTGUN_COCK, CHAN_AUTO, CHANF_UI);
|
||||
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 4:
|
||||
|
@ -926,7 +928,7 @@ public:
|
|||
}
|
||||
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;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -358,6 +358,7 @@ class DRRLevelSummaryScreen : public DScreenJob
|
|||
const char* lastmapname;
|
||||
int gfx_offset;
|
||||
int bonuscnt = 0;
|
||||
int speech = -1;
|
||||
|
||||
void SetTotalClock(int tc)
|
||||
{
|
||||
|
@ -502,13 +503,14 @@ public:
|
|||
{
|
||||
bonuscnt++;
|
||||
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))
|
||||
{
|
||||
if (!skiprequest && soundEngine->GetSoundPlayingInfo(SOURCE_None, nullptr, -1)) return 1;
|
||||
if (speech > 0 && !skiprequest && soundEngine->GetSoundPlayingInfo(SOURCE_None, nullptr, speech)) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -473,7 +473,7 @@ SKIPWALLCHECK:
|
|||
hittype[j].picnum = FLAMETHROWERFLAME;
|
||||
}
|
||||
|
||||
if (s->picnum != SHRINKSPARK && (!isWorldTour() && s->picnum != LAVAPOOL))
|
||||
if (s->picnum != SHRINKSPARK && (!isWorldTour() || s->picnum != LAVAPOOL))
|
||||
{
|
||||
if (d < r / 3)
|
||||
{
|
||||
|
@ -491,7 +491,7 @@ SKIPWALLCHECK:
|
|||
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;
|
||||
sj->xvel += (s->extra << 2);
|
||||
|
@ -2807,6 +2807,8 @@ static void flamethrowerflame(int i)
|
|||
int dax = s->x;
|
||||
int day = s->y;
|
||||
int daz = s->z;
|
||||
int xvel = s->xvel;
|
||||
int zvel = s->zvel;
|
||||
|
||||
getglobalz(i);
|
||||
|
||||
|
@ -2823,8 +2825,8 @@ static void flamethrowerflame(int i)
|
|||
return;
|
||||
}
|
||||
|
||||
j = fi.movesprite(i, (s->xvel * (sintable[(s->ang + 512) & 2047])) >> 14,
|
||||
(s->xvel * (sintable[s->ang & 2047])) >> 14, s->zvel, CLIPMASK1);
|
||||
j = fi.movesprite(i, (xvel * (sintable[(s->ang + 512) & 2047])) >> 14,
|
||||
(xvel * (sintable[s->ang & 2047])) >> 14, s->zvel, CLIPMASK1);
|
||||
|
||||
if (s->sectnum < 0)
|
||||
{
|
||||
|
@ -2849,7 +2851,7 @@ static void flamethrowerflame(int i)
|
|||
}
|
||||
|
||||
if (j != 0) {
|
||||
s->xvel = s->yvel = 0;
|
||||
s->xvel = s->yvel = s->zvel = 0;
|
||||
if ((j & kHitTypeMask) == kHitSprite)
|
||||
{
|
||||
j &= (MAXSPRITES - 1);
|
||||
|
|
|
@ -301,6 +301,7 @@ enum sflags_t
|
|||
SFLAG_BADGUY = 0x00000020,
|
||||
SFLAG_NOPAL = 0x00000040,
|
||||
SFLAG_FORCEAUTOAIM = 0x00000080,
|
||||
SFLAG_BOSS = 0x00000100,
|
||||
SFLAG_USEACTIVATOR = 0x00000200,
|
||||
SFLAG_NOFLOORSHADOW = 0x00001000, // for temp. internal use, per-tile flag not checked
|
||||
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.
|
||||
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_GREENSLIMEFOOD, { LIZTROOP, LIZMAN, PIGCOP, NEWBEAST });
|
||||
|
||||
if (isWorldTour())
|
||||
{
|
||||
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, {
|
||||
|
|
|
@ -1799,7 +1799,7 @@ int ConCompiler::parsecommand()
|
|||
max_ammo_amount[8] = parseone();
|
||||
max_ammo_amount[9] = 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();
|
||||
numfreezebounces = parseone();
|
||||
freezerhurtowner = parseone();
|
||||
|
@ -1808,6 +1808,7 @@ int ConCompiler::parsecommand()
|
|||
spriteqamount = clamp(parseone(), 0, 1024);
|
||||
lasermode = parseone();
|
||||
}
|
||||
if (isWorldTour()) max_ammo_amount[12] = parseone();
|
||||
if (isRRRA())
|
||||
{
|
||||
max_ammo_amount[13] = parseone();
|
||||
|
|
|
@ -175,8 +175,7 @@ int animateknuckles(int gs, int snum, double hard_landing, double look_anghalf,
|
|||
else
|
||||
pal = sector[ps[snum].cursectnum].floorpal;
|
||||
|
||||
auto pic = isWorldTour() ? CRACKKNUCKLESWIDE : CRACKKNUCKLES;
|
||||
hud_drawpal(160 + (getavel(snum) / 16.) - look_anghalf, looking_arc + 180 - horiz16th, pic + knuckle_frames[ps[snum].knuckle_incs >> 1], gs, 4, pal);
|
||||
hud_drawpal(160 + (getavel(snum) / 16.) - look_anghalf, looking_arc + 180 - horiz16th, CRACKKNUCKLES + knuckle_frames[ps[snum].knuckle_incs >> 1], gs, 4, pal);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -477,7 +476,7 @@ void displayweapon_d(int snum, double smoothratio)
|
|||
if (*kb < (isWW2GI() ? aplWeaponTotalTime[RPG_WEAPON][snum] : 8))
|
||||
{
|
||||
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())
|
||||
{
|
||||
|
@ -852,46 +851,46 @@ void displayweapon_d(int snum, double smoothratio)
|
|||
else
|
||||
{
|
||||
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;
|
||||
auto reload_time = isWW2GI() ? aplWeaponReload[PISTOL_WEAPON][snum] : WEAPON2_RELOAD_TIME;
|
||||
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)
|
||||
{
|
||||
hud_drawpal(244 - (kickback_pic * 8.) - look_anghalf, looking_arc + 130 - gun_pos + (kickback_pic * 16.), pic + 6, gs, o | pin, pal);
|
||||
hud_drawpal(224 - look_anghalf, looking_arc + 220 - gun_pos, pic + 5, 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);
|
||||
}
|
||||
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(224 - look_anghalf, looking_arc + 220 - gun_pos, pic + 5, 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);
|
||||
}
|
||||
else if (*kb < (reload_time - 12))
|
||||
{
|
||||
hud_drawpal(184 - look_anghalf, looking_arc + 235 - gun_pos, pic + 8, gs, o | pin, pal);
|
||||
hud_drawpal(224 - look_anghalf, looking_arc + 210 - gun_pos, pic + 5, 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);
|
||||
}
|
||||
else if (*kb < (reload_time - 6))
|
||||
{
|
||||
hud_drawpal(164 - look_anghalf, looking_arc + 245 - gun_pos, pic + 8, gs, o | pin, pal);
|
||||
hud_drawpal(224 - look_anghalf, looking_arc + 220 - gun_pos, pic + 5, 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);
|
||||
}
|
||||
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)
|
||||
{
|
||||
hud_drawpal(184 - look_anghalf, looking_arc + 235 - gun_pos, pic + 8, gs, o | pin, pal);
|
||||
hud_drawpal(224 - look_anghalf, looking_arc + 210 - gun_pos, pic + 5, 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);
|
||||
}
|
||||
else if (*kb < 25)
|
||||
{
|
||||
hud_drawpal(164 - look_anghalf, looking_arc + 245 - gun_pos, pic + 8, gs, o | pin, pal);
|
||||
hud_drawpal(224 - look_anghalf, looking_arc + 220 - gun_pos, pic + 5, 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);
|
||||
}
|
||||
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;
|
||||
}
|
||||
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 + 235 - gun_pos, pic + 3 + cat_frames[*kb % 6], -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, 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);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
return (((actorinfo[sprite[spritenum].picnum].flags/* ^ hittype[spritenum].flags*/) & mask) != 0);
|
||||
|
|
|
@ -158,7 +158,7 @@ void shoot_d(int i, int atwith)
|
|||
}
|
||||
else
|
||||
{
|
||||
zvel = 98 * (100 + ps[p].gethorizsum());
|
||||
zvel = 98 * (100 - ps[p].gethorizsum());
|
||||
sx += sintable[(sa + 860) & 0x7FF] / 448;
|
||||
sy += sintable[(sa + 348) & 0x7FF] / 448;
|
||||
sz += (3 << 8);
|
||||
|
@ -849,11 +849,28 @@ void shoot_d(int i, int atwith)
|
|||
}
|
||||
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].y -= sintable[(sa + 1024 + 512) & 2047] / 56;
|
||||
sprite[j].ang -= 8 + (krand() & 255) - 128;
|
||||
sprite[j].xrepeat = 24;
|
||||
sprite[j].yrepeat = 24;
|
||||
|
||||
|
||||
}
|
||||
else if (atwith != FREEZEBLAST)
|
||||
{
|
||||
|
|
|
@ -380,12 +380,14 @@ public:
|
|||
|
||||
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];
|
||||
int h = tilesiz[TILE_BOTTOMSTATUSBAR].y;
|
||||
int h = tilesiz[tile].y;
|
||||
int top = 200 - h;
|
||||
int left = (320 - tilesiz[tile].x) / 2;
|
||||
BeginStatusBar(320, 200, h);
|
||||
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;
|
||||
|
||||
|
|
|
@ -1381,6 +1381,9 @@ void checkhitsprite_d(int i, int sn)
|
|||
{
|
||||
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[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);
|
||||
}
|
||||
|
||||
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)
|
||||
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)))
|
||||
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].extra += sprite[sn].extra;
|
||||
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 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)
|
||||
{
|
||||
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)
|
||||
|
@ -601,7 +633,7 @@ void S_PlaySpecialMusic(unsigned int m)
|
|||
auto& musicfn = specialmusic[m];
|
||||
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);
|
||||
}
|
||||
|
||||
if (sp->picnum == ONFIRE)
|
||||
{
|
||||
sp->x += krand() % 256 - 128;
|
||||
sp->y += krand() % 256 - 128;
|
||||
sp->z -= krand() % 10240;
|
||||
sp->cstat |= 0x80;
|
||||
}
|
||||
|
||||
changespritestat(i,5);
|
||||
|
||||
break;
|
||||
|
|
|
@ -1009,7 +1009,7 @@ OptionMenu "AutomapOptions"
|
|||
Submenu "$MAPCNTRLMNU_CONTROLS" , "MapControlsMenu"
|
||||
StaticText ""
|
||||
Option "$AUTOMAPMNU_ROTATE", "am_rotate", "OnOff"
|
||||
Option "$AUTOMAPMNU_FOLLOW", "am_follow", "OnOff"
|
||||
Option "$AUTOMAPMNU_FOLLOW", "am_followplayer", "OnOff"
|
||||
|
||||
// move map controls here.
|
||||
// todo:
|
||||
|
|
|
@ -201,6 +201,8 @@ Apasă Y sau N.","Загрузить быстрое сохранение
|
|||
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,Нет,Не
|
||||
%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,,,,,,,,,,,,,,,,,,,,,
|
||||
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ă>,<Новое сохранение>,<Нова сачувана игра>
|
||||
|
@ -2218,7 +2220,7 @@ into the heart of karnak...
|
|||
Home to the celebrated
|
||||
burial crypt of the great
|
||||
King Ramses.
|
||||
",TXT_EX_CINEMA1,,,,,,,,,,,,,,,,,,,,,,
|
||||
",TXT_EX_CINEMA1,Intro movie subtitles,,,,,,,,,,,,,,,,,,,,,
|
||||
"An evil force known as the
|
||||
Kilmaat has besieged the
|
||||
sanctity of my palace and
|
||||
|
@ -2235,7 +2237,7 @@ chaos will prevail. I am
|
|||
being torn between worlds
|
||||
and this insidious
|
||||
experiment must be stopped.
|
||||
",TXT_EX_CINEMA1,,,,,,,,,,,,,,,,,,,,,,
|
||||
",TXT_EX_CINEMA1,Level 1,,,,,,,,,,,,,,,,,,,,,
|
||||
"I have hidden a mystical
|
||||
gauntlet at el kab that will
|
||||
channel my energy through
|
||||
|
@ -2251,13 +2253,13 @@ restless with your progress.
|
|||
Seek out a temple in this
|
||||
citadel where I will provide
|
||||
more information.
|
||||
",TXT_EX_CINEMA3,,,,,,,,,,,,,,,,,,,,,,
|
||||
",TXT_EX_CINEMA3,After Level 10,,,,,,,,,,,,,,,,,,,,,
|
||||
"Set was a formidable foe.
|
||||
No mortal has even conquered
|
||||
their own fear, much less
|
||||
entered mortal battle and
|
||||
taken his life.
|
||||
",TXT_EX_CINEMA4,,,,,,,,,,,,,,,,,,,,,,
|
||||
",TXT_EX_CINEMA4,Before Level 11,,,,,,,,,,,,,,,,,,,,,
|
||||
"the Kilmaat race has
|
||||
continued their monsterous
|
||||
animal-human experiments in
|
||||
|
@ -2274,7 +2276,7 @@ and insect intent on slaying
|
|||
you. Prepare yourself for
|
||||
battle as she will be waiting
|
||||
for you at the Luxor temple.
|
||||
",TXT_EX_CINEMA5,,,,,,,,,,,,,,,,,,,,,,
|
||||
",TXT_EX_CINEMA5,In Level 11,,,,,,,,,,,,,,,,,,,,,
|
||||
"You've done well to defeat
|
||||
Selkis. You have distracted
|
||||
the Kilmaat with your
|
||||
|
@ -2287,7 +2289,7 @@ against you. Arrogance is
|
|||
her weakness, and if you can
|
||||
defeat Kilmaatikhan, the
|
||||
battle will be won.
|
||||
",TXT_EX_CINEMA6,,,,,,,,,,,,,,,,,,,,,,
|
||||
",TXT_EX_CINEMA6,After Level 15,,,,,,,,,,,,,,,,,,,,,
|
||||
"The Kilmaat have been
|
||||
destroyed. Unfortunately,
|
||||
your recklessness has
|
||||
|
@ -2295,7 +2297,7 @@ destroyed the Earth and all
|
|||
of its inhabitants. All that
|
||||
remains is a smoldering hunk
|
||||
of rock.
|
||||
",TXT_EX_CINEMA7,,,,,,,,,,,,,,,,,,,,,,
|
||||
",TXT_EX_CINEMA7,Bad ending,,,,,,,,,,,,,,,,,,,,,
|
||||
"The Kilmaat have been
|
||||
defeated and you single
|
||||
handedly saved the Earth
|
||||
|
@ -2305,7 +2307,7 @@ from destruction.
|
|||
|
||||
Your bravery and heroism
|
||||
are legendary.
|
||||
",TXT_EX_CINEMA8,,,,,,,,,,,,,,,,,,,,,,
|
||||
",TXT_EX_CINEMA8,After Level 20,,,,,,,,,,,,,,,,,,,,,
|
||||
"LOBOTOMY SOFTWARE, INC.,",TXT_EX_COPYRIGHT1,,,,,,,,,,,,,,,,,,,,,,
|
||||
"3D ENGINE BY 3D REALMS,",TXT_EX_COPYRIGHT2,,,,,,,,,,,,,,,,,,,,,,
|
||||
Life Blood,TXT_EX_PICKUP1,,,,,,,,,,,,,,,,,,,,,,
|
||||
|
|
|
Loading…
Reference in a new issue