mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-25 11:10:47 +00:00
Rednukem: dh wip
# Conflicts: # GNUmakefile # platform/Windows/rednukem.vcxproj # platform/Windows/rednukem.vcxproj.filters # source/rr/src/common_game.h # source/rr/src/screens.cpp
This commit is contained in:
parent
0551c16203
commit
ac2a17f5ea
11 changed files with 526 additions and 14 deletions
|
@ -9550,6 +9550,8 @@ static void A_DoLight(int spriteNum)
|
||||||
|
|
||||||
void A_PlayAlertSound(int spriteNum)
|
void A_PlayAlertSound(int spriteNum)
|
||||||
{
|
{
|
||||||
|
if (DEER)
|
||||||
|
return;
|
||||||
if (RR)
|
if (RR)
|
||||||
{
|
{
|
||||||
if (sprite[spriteNum].extra > 0)
|
if (sprite[spriteNum].extra > 0)
|
||||||
|
|
|
@ -20,6 +20,7 @@ BEGIN_RR_NS
|
||||||
#define WW2GI (g_gameType & GAMEFLAG_WW2GI)
|
#define WW2GI (g_gameType & GAMEFLAG_WW2GI)
|
||||||
#define NAM_WW2GI (g_gameType & (GAMEFLAG_NAM|GAMEFLAG_WW2GI))
|
#define NAM_WW2GI (g_gameType & (GAMEFLAG_NAM|GAMEFLAG_WW2GI))
|
||||||
#define SHAREWARE (g_gameType & GAMEFLAG_SHAREWARE)
|
#define SHAREWARE (g_gameType & GAMEFLAG_SHAREWARE)
|
||||||
|
#define DEER (g_gameType & GAMEFLAG_DEER)
|
||||||
//#define DUKEBETA ((g_gameType & GAMEFLAG_DUKEBETA) == GAMEFLAG_DUKEBETA)
|
//#define DUKEBETA ((g_gameType & GAMEFLAG_DUKEBETA) == GAMEFLAG_DUKEBETA)
|
||||||
//#define IONMAIDEN (g_gameType & GAMEFLAG_IONMAIDEN)
|
//#define IONMAIDEN (g_gameType & GAMEFLAG_IONMAIDEN)
|
||||||
|
|
||||||
|
|
|
@ -129,6 +129,7 @@ END_RR_NS
|
||||||
#include "sector.h"
|
#include "sector.h"
|
||||||
#include "sounds.h"
|
#include "sounds.h"
|
||||||
#include "soundsdyn.h"
|
#include "soundsdyn.h"
|
||||||
|
#include "rrdh.h"
|
||||||
|
|
||||||
BEGIN_RR_NS
|
BEGIN_RR_NS
|
||||||
|
|
||||||
|
|
|
@ -6769,7 +6769,15 @@ static void G_PostLoadPalette(void)
|
||||||
// Has to be after setting the dynamic names (e.g. SHARK).
|
// Has to be after setting the dynamic names (e.g. SHARK).
|
||||||
static void A_InitEnemyFlags(void)
|
static void A_InitEnemyFlags(void)
|
||||||
{
|
{
|
||||||
if (RRRA)
|
if (DEER)
|
||||||
|
{
|
||||||
|
int DukeEnemies[] = {
|
||||||
|
DOGRUN, PIG, VIXEN, CHEER };
|
||||||
|
|
||||||
|
for (bssize_t i = ARRAY_SIZE(DukeEnemies) - 1; i >= 0; i--)
|
||||||
|
SETFLAG(DukeEnemies[i], SFLAG_HARDCODED_BADGUY|SFLAG_BADGUY_TILE|SFLAG_KILLCOUNT);
|
||||||
|
}
|
||||||
|
else if (RRRA)
|
||||||
{
|
{
|
||||||
int DukeEnemies[] = {
|
int DukeEnemies[] = {
|
||||||
BOULDER, BOULDER1, EGG, RAT, TORNADO, BILLYCOCK, BILLYRAY, BILLYRAYSTAYPUT,
|
BOULDER, BOULDER1, EGG, RAT, TORNADO, BILLYCOCK, BILLYRAY, BILLYRAYSTAYPUT,
|
||||||
|
|
|
@ -126,6 +126,7 @@ static tokenmap_t const vm_keywords[] =
|
||||||
{ "defineskillname", CON_DEFINESKILLNAME },
|
{ "defineskillname", CON_DEFINESKILLNAME },
|
||||||
{ "definesound", CON_DEFINESOUND },
|
{ "definesound", CON_DEFINESOUND },
|
||||||
{ "definevolumename", CON_DEFINEVOLUMENAME },
|
{ "definevolumename", CON_DEFINEVOLUMENAME },
|
||||||
|
{ "deploybias", CON_DEPLOYBIAS },
|
||||||
{ "destroyit", CON_DESTROYIT },
|
{ "destroyit", CON_DESTROYIT },
|
||||||
{ "else", CON_ELSE },
|
{ "else", CON_ELSE },
|
||||||
{ "enda", CON_ENDA },
|
{ "enda", CON_ENDA },
|
||||||
|
@ -158,6 +159,7 @@ static tokenmap_t const vm_keywords[] =
|
||||||
{ "ifceilingdistl", CON_IFCEILINGDISTL },
|
{ "ifceilingdistl", CON_IFCEILINGDISTL },
|
||||||
{ "ifcount", CON_IFCOUNT },
|
{ "ifcount", CON_IFCOUNT },
|
||||||
{ "ifdead", CON_IFDEAD },
|
{ "ifdead", CON_IFDEAD },
|
||||||
|
{ "iffindnewspot", CON_IFFINDNEWSPOT },
|
||||||
{ "iffloordistl", CON_IFFLOORDISTL },
|
{ "iffloordistl", CON_IFFLOORDISTL },
|
||||||
{ "ifgapzl", CON_IFGAPZL },
|
{ "ifgapzl", CON_IFGAPZL },
|
||||||
{ "ifgotweaponce", CON_IFGOTWEAPONCE },
|
{ "ifgotweaponce", CON_IFGOTWEAPONCE },
|
||||||
|
@ -195,6 +197,7 @@ static tokenmap_t const vm_keywords[] =
|
||||||
{ "ifsquished", CON_IFSQUISHED },
|
{ "ifsquished", CON_IFSQUISHED },
|
||||||
{ "ifstrength", CON_IFSTRENGTH },
|
{ "ifstrength", CON_IFSTRENGTH },
|
||||||
{ "iftipcow", CON_IFTIPCOW },
|
{ "iftipcow", CON_IFTIPCOW },
|
||||||
|
{ "ifpupwind", CON_IFPUPWIND },
|
||||||
{ "ifvare", CON_IFVARE },
|
{ "ifvare", CON_IFVARE },
|
||||||
{ "ifvarg", CON_IFVARG },
|
{ "ifvarg", CON_IFVARG },
|
||||||
{ "ifvarl", CON_IFVARL },
|
{ "ifvarl", CON_IFVARL },
|
||||||
|
@ -208,6 +211,8 @@ static tokenmap_t const vm_keywords[] =
|
||||||
{ "iseat", CON_ISEAT },
|
{ "iseat", CON_ISEAT },
|
||||||
{ "killit", CON_KILLIT },
|
{ "killit", CON_KILLIT },
|
||||||
{ "larrybird", CON_LARRYBIRD },
|
{ "larrybird", CON_LARRYBIRD },
|
||||||
|
{ "leavedroppings", CON_LEAVEDROPPINGS },
|
||||||
|
{ "leavetrax", CON_LEAVETRAX },
|
||||||
{ "lotsofglass", CON_LOTSOFGLASS },
|
{ "lotsofglass", CON_LOTSOFGLASS },
|
||||||
{ "mail", CON_MAIL },
|
{ "mail", CON_MAIL },
|
||||||
{ "mamaend", CON_MAMAEND },
|
{ "mamaend", CON_MAMAEND },
|
||||||
|
@ -2108,6 +2113,8 @@ ifvar:
|
||||||
case CON_IFONMOTO:
|
case CON_IFONMOTO:
|
||||||
case CON_IFONBOAT:
|
case CON_IFONBOAT:
|
||||||
case CON_IFSIZEDOWN:
|
case CON_IFSIZEDOWN:
|
||||||
|
case CON_IFFINDNEWSPOT:
|
||||||
|
case CON_IFPUPWIND:
|
||||||
{
|
{
|
||||||
intptr_t offset;
|
intptr_t offset;
|
||||||
intptr_t lastScriptPtr = (g_scriptPtr-&apScript[0]-1);
|
intptr_t lastScriptPtr = (g_scriptPtr-&apScript[0]-1);
|
||||||
|
@ -2503,6 +2510,9 @@ ifvar:
|
||||||
case CON_GARYBANJO:
|
case CON_GARYBANJO:
|
||||||
case CON_MOTOLOOPSND:
|
case CON_MOTOLOOPSND:
|
||||||
case CON_RNDMOVE:
|
case CON_RNDMOVE:
|
||||||
|
case CON_LEAVETRAX:
|
||||||
|
case CON_LEAVEDROPPINGS:
|
||||||
|
case CON_DEPLOYBIAS:
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_NULLOP:
|
case CON_NULLOP:
|
||||||
|
|
|
@ -341,6 +341,11 @@ enum ScriptKeywords_t
|
||||||
CON_ENDEVENT, // 159
|
CON_ENDEVENT, // 159
|
||||||
CON_IFVARE, // 160
|
CON_IFVARE, // 160
|
||||||
CON_IFVARVARE, // 161
|
CON_IFVARVARE, // 161
|
||||||
|
CON_IFFINDNEWSPOT, // 162
|
||||||
|
CON_LEAVETRAX, // 163
|
||||||
|
CON_LEAVEDROPPINGS, // 164
|
||||||
|
CON_DEPLOYBIAS, // 165
|
||||||
|
CON_IFPUPWIND, // 166
|
||||||
CON_END
|
CON_END
|
||||||
};
|
};
|
||||||
// KEEPINSYNC with the keyword list in lunatic/con_lang.lua
|
// KEEPINSYNC with the keyword list in lunatic/con_lang.lua
|
||||||
|
|
|
@ -269,6 +269,12 @@ GAMEEXEC_STATIC GAMEEXEC_INLINE void P_ForceAngle(DukePlayer_t *pPlayer)
|
||||||
int32_t A_Dodge(spritetype * const);
|
int32_t A_Dodge(spritetype * const);
|
||||||
int32_t A_Dodge(spritetype * const pSprite)
|
int32_t A_Dodge(spritetype * const pSprite)
|
||||||
{
|
{
|
||||||
|
if (DEER)
|
||||||
|
{
|
||||||
|
pSprite->ang += ((rrdh_random() & 255) - 127) * 2;
|
||||||
|
pSprite->ang &= 2047;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
vec2_t const msin = { sintable[(pSprite->ang + 512) & 2047], sintable[pSprite->ang & 2047] };
|
vec2_t const msin = { sintable[(pSprite->ang + 512) & 2047], sintable[pSprite->ang & 2047] };
|
||||||
|
|
||||||
for (native_t nexti, SPRITES_OF_STAT_SAFE(STAT_PROJECTILE, i, nexti)) //weapons list
|
for (native_t nexti, SPRITES_OF_STAT_SAFE(STAT_PROJECTILE, i, nexti)) //weapons list
|
||||||
|
@ -653,7 +659,7 @@ GAMEEXEC_STATIC void VM_Move(void)
|
||||||
if ((movflags&jumptoplayer_bits) == jumptoplayer_bits)
|
if ((movflags&jumptoplayer_bits) == jumptoplayer_bits)
|
||||||
{
|
{
|
||||||
if (AC_COUNT(vm.pData) < 16)
|
if (AC_COUNT(vm.pData) < 16)
|
||||||
vm.pSprite->zvel -= (RRRA && vm.pSprite->picnum == CHEER) ? (sintable[(512+(AC_COUNT(vm.pData)<<4))&2047]/40)
|
vm.pSprite->zvel -= (!DEER && RRRA && vm.pSprite->picnum == CHEER) ? (sintable[(512+(AC_COUNT(vm.pData)<<4))&2047]/40)
|
||||||
: (sintable[(512+(AC_COUNT(vm.pData)<<4))&2047]>>5);
|
: (sintable[(512+(AC_COUNT(vm.pData)<<4))&2047]>>5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -866,6 +872,28 @@ GAMEEXEC_STATIC void VM_Move(void)
|
||||||
= { (spriteXvel * (sintable[(angDiff + 512) & 2047])) >> 14, (spriteXvel * (sintable[angDiff & 2047])) >> 14, vm.pSprite->zvel };
|
= { (spriteXvel * (sintable[(angDiff + 512) & 2047])) >> 14, (spriteXvel * (sintable[angDiff & 2047])) >> 14, vm.pSprite->zvel };
|
||||||
|
|
||||||
vm.pActor->movflag = A_MoveSprite(vm.spriteNum, &vect, CLIPMASK0);
|
vm.pActor->movflag = A_MoveSprite(vm.spriteNum, &vect, CLIPMASK0);
|
||||||
|
if (DEER && vm.pSprite->picnum != DOGRUN)
|
||||||
|
{
|
||||||
|
if ((vm.pActor->movflag & 49152) == 32768)
|
||||||
|
{
|
||||||
|
int const wallnum = vm.pActor->movflag & (MAXWALLS-1);
|
||||||
|
if (ghcons_isanimalescapewall(wallnum))
|
||||||
|
{
|
||||||
|
vm.pSprite->z = sector[vm.pSprite->sectnum].ceilingz;
|
||||||
|
A_MoveSprite(vm.spriteNum, &vect, CLIPMASK0);
|
||||||
|
vm.pSprite->z = sector[vm.pSprite->sectnum].floorz;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ((vm.pActor->movflag & 49152) == 16384)
|
||||||
|
{
|
||||||
|
int sectnum = vm.pActor->movflag & (MAXSECTORS-1);
|
||||||
|
if (ghcons_isanimalescapesect(sectnum))
|
||||||
|
{
|
||||||
|
A_MoveSprite(vm.spriteNum, &vect, CLIPMASK0);
|
||||||
|
vm.pSprite->z = sector[vm.pSprite->sectnum].floorz;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!badguyp)
|
if (!badguyp)
|
||||||
|
@ -1133,6 +1161,7 @@ static void VM_Fall(int const spriteNum, spritetype * const pSprite)
|
||||||
if ((unsigned)newsect < MAXSECTORS)
|
if ((unsigned)newsect < MAXSECTORS)
|
||||||
changespritesect(spriteNum, newsect);
|
changespritesect(spriteNum, newsect);
|
||||||
|
|
||||||
|
if (!DEER)
|
||||||
A_PlaySound(THUD, spriteNum);
|
A_PlaySound(THUD, spriteNum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1366,6 +1395,18 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
{
|
{
|
||||||
uspritetype *pSprite = (uspritetype *)&sprite[pPlayer->i];
|
uspritetype *pSprite = (uspritetype *)&sprite[pPlayer->i];
|
||||||
|
|
||||||
|
if (DEER)
|
||||||
|
{
|
||||||
|
if (sintable[vm.pSprite->ang&2047] * (pSprite->y - vm.pSprite->y) + sintable[(vm.pSprite->ang+512)&2047] * (pSprite->x - vm.pSprite->x) >= 0)
|
||||||
|
tw = cansee(vm.pSprite->x, vm.pSprite->y, vm.pSprite->z - (krand2() % 13312), vm.pSprite->sectnum,
|
||||||
|
pSprite->x, pSprite->y, pPlayer->opos.z-(krand2() % 8192), pPlayer->cursectnum);
|
||||||
|
else
|
||||||
|
tw = 0;
|
||||||
|
|
||||||
|
VM_CONDITIONAL(tw);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// select sprite for monster to target
|
// select sprite for monster to target
|
||||||
// if holoduke is on, let them target holoduke first.
|
// if holoduke is on, let them target holoduke first.
|
||||||
//
|
//
|
||||||
|
@ -1411,7 +1452,16 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
case CON_IFHITWEAPON: VM_CONDITIONAL(A_IncurDamage(vm.spriteNum) >= 0); continue;
|
case CON_IFHITWEAPON:
|
||||||
|
if (DEER)
|
||||||
|
{
|
||||||
|
VM_CONDITIONAL(ghtrophy_isakill(vm.spriteNum));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VM_CONDITIONAL(A_IncurDamage(vm.spriteNum) >= 0);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
|
||||||
case CON_IFSQUISHED: VM_CONDITIONAL(VM_CheckSquished()); continue;
|
case CON_IFSQUISHED: VM_CONDITIONAL(VM_CheckSquished()); continue;
|
||||||
|
|
||||||
|
@ -1442,7 +1492,7 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_IFPDISTL:
|
case CON_IFPDISTL:
|
||||||
VM_CONDITIONAL(vm.playerDist < *(++insptr));
|
VM_CONDITIONAL(!(DEER && sub_535EC()) && vm.playerDist < *(++insptr));
|
||||||
if (vm.playerDist > MAXSLEEPDIST && vm.pActor->timetosleep == 0)
|
if (vm.playerDist > MAXSLEEPDIST && vm.pActor->timetosleep == 0)
|
||||||
vm.pActor->timetosleep = SLEEPTIME;
|
vm.pActor->timetosleep = SLEEPTIME;
|
||||||
continue;
|
continue;
|
||||||
|
@ -1728,6 +1778,11 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
case CON_DEPLOYBIAS:
|
||||||
|
insptr++;
|
||||||
|
ghdeploy_bias(vm.spriteNum);
|
||||||
|
continue;
|
||||||
|
|
||||||
case CON_MAMAEND:
|
case CON_MAMAEND:
|
||||||
insptr++;
|
insptr++;
|
||||||
g_player[myconnectindex].ps->level_end_timer = 150;
|
g_player[myconnectindex].ps->level_end_timer = 150;
|
||||||
|
@ -1778,6 +1833,15 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
VM_CONDITIONAL(0);
|
VM_CONDITIONAL(0);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
case CON_IFFINDNEWSPOT:
|
||||||
|
VM_CONDITIONAL(ghcons_findnewspot(vm.spriteNum));
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case CON_LEAVEDROPPINGS:
|
||||||
|
insptr++;
|
||||||
|
ghtrax_leavedroppings(vm.spriteNum);
|
||||||
|
continue;
|
||||||
|
|
||||||
case CON_TEARITUP:
|
case CON_TEARITUP:
|
||||||
insptr++;
|
insptr++;
|
||||||
for (bssize_t SPRITES_OF_SECT(vm.pSprite->sectnum, spriteNum))
|
for (bssize_t SPRITES_OF_SECT(vm.pSprite->sectnum, spriteNum))
|
||||||
|
@ -1829,6 +1893,13 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_ADDKILLS:
|
case CON_ADDKILLS:
|
||||||
|
if (DEER)
|
||||||
|
{
|
||||||
|
// no op
|
||||||
|
insptr++;
|
||||||
|
insptr++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
insptr++;
|
insptr++;
|
||||||
if (g_gameType & GAMEFLAG_RR)
|
if (g_gameType & GAMEFLAG_RR)
|
||||||
{
|
{
|
||||||
|
@ -1931,6 +2002,11 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
sprite[pPlayer->i].z = pPlayer->pos.z;
|
sprite[pPlayer->i].z = pPlayer->pos.z;
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
case CON_LEAVETRAX:
|
||||||
|
insptr++;
|
||||||
|
ghtrax_leavetrax(vm.spriteNum);
|
||||||
|
continue;
|
||||||
|
|
||||||
case CON_DESTROYIT:
|
case CON_DESTROYIT:
|
||||||
insptr++;
|
insptr++;
|
||||||
{
|
{
|
||||||
|
@ -2244,6 +2320,11 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_IFONWATER:
|
case CON_IFONWATER:
|
||||||
|
if (DEER)
|
||||||
|
{
|
||||||
|
VM_CONDITIONAL(sector[vm.pSprite->sectnum].hitag == 2003);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
VM_CONDITIONAL(sector[vm.pSprite->sectnum].lotag == ST_1_ABOVE_WATER
|
VM_CONDITIONAL(sector[vm.pSprite->sectnum].lotag == ST_1_ABOVE_WATER
|
||||||
&& klabs(vm.pSprite->z - sector[vm.pSprite->sectnum].floorz) < ZOFFSET5);
|
&& klabs(vm.pSprite->z - sector[vm.pSprite->sectnum].floorz) < ZOFFSET5);
|
||||||
continue;
|
continue;
|
||||||
|
@ -2270,7 +2351,18 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
VM_CONDITIONAL(g_windTime > 0);
|
VM_CONDITIONAL(g_windTime > 0);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_IFINWATER: VM_CONDITIONAL(sector[vm.pSprite->sectnum].lotag == ST_2_UNDERWATER); continue;
|
case CON_IFPUPWIND:
|
||||||
|
VM_CONDITIONAL(ghtrax_isplrupwind(vm.spriteNum, vm.playerNum));
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case CON_IFINWATER:
|
||||||
|
if (DEER)
|
||||||
|
{
|
||||||
|
VM_CONDITIONAL(sector[vm.pSprite->sectnum].hitag == 2003 && klabs(vm.pSprite->z - sector[vm.pSprite->sectnum].floorz) < ZOFFSET5);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
VM_CONDITIONAL(sector[vm.pSprite->sectnum].lotag == ST_2_UNDERWATER);
|
||||||
|
continue;
|
||||||
|
|
||||||
case CON_IFCOUNT:
|
case CON_IFCOUNT:
|
||||||
insptr++;
|
insptr++;
|
||||||
|
@ -2317,12 +2409,13 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
|| ((moveFlags & pwalkingback) && playerXVel <= -8 && !TEST_SYNC_KEY(syncBits, SK_RUN))
|
|| ((moveFlags & pwalkingback) && playerXVel <= -8 && !TEST_SYNC_KEY(syncBits, SK_RUN))
|
||||||
|| ((moveFlags & prunningback) && playerXVel <= -8 && TEST_SYNC_KEY(syncBits, SK_RUN))
|
|| ((moveFlags & prunningback) && playerXVel <= -8 && TEST_SYNC_KEY(syncBits, SK_RUN))
|
||||||
|| ((moveFlags & pkicking)
|
|| ((moveFlags & pkicking)
|
||||||
&& (pPlayer->quick_kick > 0
|
&& (DEER ? ghsound_pfiredgunnear(vm.pSprite, vm.playerNum) :(pPlayer->quick_kick > 0
|
||||||
|| (pPlayer->curr_weapon == KNEE_WEAPON && pPlayer->kickback_pic > 0)))
|
|| (pPlayer->curr_weapon == KNEE_WEAPON && pPlayer->kickback_pic > 0))))
|
||||||
|| ((moveFlags & pshrunk) && sprite[pPlayer->i].xrepeat < (RR ? 8 : 32))
|
|| ((moveFlags & pshrunk) && (DEER ? pPlayer->dhat60f && !sub_535EC() : sprite[pPlayer->i].xrepeat < (RR ? 8 : 32)))
|
||||||
|| ((moveFlags & pjetpack) && pPlayer->jetpack_on)
|
|| ((moveFlags & pjetpack) && pPlayer->jetpack_on)
|
||||||
|| ((moveFlags & ponsteroids) && pPlayer->inv_amount[GET_STEROIDS] > 0 && pPlayer->inv_amount[GET_STEROIDS] < 400)
|
|| ((moveFlags & ponsteroids) && (DEER ? ghsound_pmadesound(vm.pSprite, vm.playerNum) :
|
||||||
|| ((moveFlags & ponground) && pPlayer->on_ground)
|
pPlayer->inv_amount[GET_STEROIDS] > 0 && pPlayer->inv_amount[GET_STEROIDS] < 400))
|
||||||
|
|| ((moveFlags & ponground) && (DEER ? ghsound_pmadecall(vm.pSprite, vm.playerNum) : pPlayer->on_ground))
|
||||||
|| ((moveFlags & palive) && sprite[pPlayer->i].xrepeat > (RR ? 8 : 32) && sprite[pPlayer->i].extra > 0 && pPlayer->timebeforeexit == 0)
|
|| ((moveFlags & palive) && sprite[pPlayer->i].xrepeat > (RR ? 8 : 32) && sprite[pPlayer->i].extra > 0 && pPlayer->timebeforeexit == 0)
|
||||||
|| ((moveFlags & pdead) && sprite[pPlayer->i].extra <= 0))
|
|| ((moveFlags & pdead) && sprite[pPlayer->i].extra <= 0))
|
||||||
nResult = 1;
|
nResult = 1;
|
||||||
|
@ -2377,7 +2470,14 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
|
|
||||||
case CON_IFHITSPACE: VM_CONDITIONAL(TEST_SYNC_KEY(g_player[vm.playerNum].inputBits->bits, SK_OPEN)); continue;
|
case CON_IFHITSPACE: VM_CONDITIONAL(TEST_SYNC_KEY(g_player[vm.playerNum].inputBits->bits, SK_OPEN)); continue;
|
||||||
|
|
||||||
case CON_IFOUTSIDE: VM_CONDITIONAL(sector[vm.pSprite->sectnum].ceilingstat & 1); continue;
|
case CON_IFOUTSIDE:
|
||||||
|
if (DEER)
|
||||||
|
{
|
||||||
|
VM_CONDITIONAL(sector[vm.pSprite->sectnum].hitag = 2000);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
VM_CONDITIONAL(sector[vm.pSprite->sectnum].ceilingstat & 1);
|
||||||
|
continue;
|
||||||
|
|
||||||
case CON_IFMULTIPLAYER: VM_CONDITIONAL((g_netServer || g_netClient || ud.multimode > 1)); continue;
|
case CON_IFMULTIPLAYER: VM_CONDITIONAL((g_netServer || g_netClient || ud.multimode > 1)); continue;
|
||||||
|
|
||||||
|
@ -2830,7 +2930,7 @@ void A_Execute(int spriteNum, int playerNum, int playerDist)
|
||||||
|
|
||||||
VM_Move();
|
VM_Move();
|
||||||
|
|
||||||
if (vm.pSprite->statnum != STAT_ACTOR)
|
if (DEER || vm.pSprite->statnum != STAT_ACTOR)
|
||||||
{
|
{
|
||||||
if (vm.pSprite->statnum == STAT_STANDABLE)
|
if (vm.pSprite->statnum == STAT_STANDABLE)
|
||||||
{
|
{
|
||||||
|
|
|
@ -221,6 +221,8 @@ typedef struct {
|
||||||
int32_t sea_sick;
|
int32_t sea_sick;
|
||||||
uint8_t hurt_delay2, nocheat;
|
uint8_t hurt_delay2, nocheat;
|
||||||
|
|
||||||
|
int32_t dhat60f;
|
||||||
|
|
||||||
int8_t crouch_toggle;
|
int8_t crouch_toggle;
|
||||||
int8_t padding_[3];
|
int8_t padding_[3];
|
||||||
} DukePlayer_t;
|
} DukePlayer_t;
|
||||||
|
|
250
source/rr/src/rrdh.cpp
Normal file
250
source/rr/src/rrdh.cpp
Normal file
|
@ -0,0 +1,250 @@
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
/*
|
||||||
|
Copyright (C) 2016 EDuke32 developers and contributors
|
||||||
|
Copyright (C) 2020 Nuke.YKT
|
||||||
|
|
||||||
|
This file is part of EDuke32.
|
||||||
|
|
||||||
|
EDuke32 is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License version 2
|
||||||
|
as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#include "compat.h"
|
||||||
|
#include "baselayer.h"
|
||||||
|
#include "duke3d.h"
|
||||||
|
|
||||||
|
int rrdh_randseed = 1;
|
||||||
|
|
||||||
|
int rrdh_random(void)
|
||||||
|
{
|
||||||
|
static int seedinit = 0;
|
||||||
|
if (!seedinit)
|
||||||
|
{
|
||||||
|
rrdh_randseed = (int)timerGetPerformanceCounter();
|
||||||
|
seedinit = 1;
|
||||||
|
}
|
||||||
|
rrdh_randseed = (rrdh_randseed*1103515245)+12345;
|
||||||
|
return (rrdh_randseed>>16)&0x7fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int ghcons_isanimalescapewall(short w)
|
||||||
|
{
|
||||||
|
walltype *wl = &wall[w];
|
||||||
|
switch (wall[w].picnum)
|
||||||
|
{
|
||||||
|
case 1182:
|
||||||
|
case 1183:
|
||||||
|
case 1184:
|
||||||
|
case 1185:
|
||||||
|
case 2347:
|
||||||
|
case 3802:
|
||||||
|
case 3803:
|
||||||
|
case 7870:
|
||||||
|
case 7871:
|
||||||
|
case 7872:
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ghcons_isanimalescapesect(short s)
|
||||||
|
{
|
||||||
|
sectortype *sc = §or[s];
|
||||||
|
return sector[s].hitag == 2001;
|
||||||
|
}
|
||||||
|
int ghcons_findnewspot(short a1)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ghsound_pmadecall(spritetype *a1, short a2)
|
||||||
|
{
|
||||||
|
switch (DYNAMICTILEMAP(a1->picnum))
|
||||||
|
{
|
||||||
|
case DOGRUN__STATICRR:
|
||||||
|
if (A_CheckSoundPlaying(-1, 41))
|
||||||
|
return 1;
|
||||||
|
case VIXEN__STATICRR:
|
||||||
|
if (A_CheckSoundPlaying(-1, 40))
|
||||||
|
return 1;
|
||||||
|
case PIG__STATICRR:
|
||||||
|
if (A_CheckSoundPlaying(-1, 42))
|
||||||
|
return 1;
|
||||||
|
case CHEER__STATICRR:
|
||||||
|
if (A_CheckSoundPlaying(-1, 43))
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ghsound_pmadesound(spritetype *a1, short a2)
|
||||||
|
{
|
||||||
|
int d = klabs(g_player[a2].ps->pos.x - a1->x) + klabs(g_player[a2].ps->pos.y - a1->y);
|
||||||
|
if (A_CheckSoundPlaying(-1, 1) && d < 23040)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 2))
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 3) && d < 23040)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 4))
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 5) && d < 23040)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 6))
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 7) && d < 23040)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 8) && d < 23040)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 56) && d < 23040)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 57) && d < 23040)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 58) && d < 23040)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 59) && d < 23040)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 25) && d < 21504)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 11) && d < 10752)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 9) && d < 15360)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 10) && d < 30720)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 12) && d < 19968)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 15) && d < 10752)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 13) && d < 15360)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 14) && d < 30720)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 16) && d < 19968)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 19) && d < 10752)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 17) && d < 15360)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 18) && d < 30720)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 20) && d < 19968)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 23) && d < 10752)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 21) && d < 15360)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 22) && d < 30720)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 24) && d < 19968)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 81) && d < 15360)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 80) && d < 30720)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 41) && d < 23040)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 40) && d < 23040)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 42) && d < 23040)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 43) && d < 23040)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 88) && d < 10752)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 89) && d < 15360)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 90) && d < 23040)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 27) && d < 30720)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 36) && d < 30720)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 30) && d < 30720)
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 33) && d < 30720)
|
||||||
|
return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ghsound_pfiredgunnear(spritetype *a1, short a2)
|
||||||
|
{
|
||||||
|
if (A_CheckSoundPlaying(-1, 2))
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 4))
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 6))
|
||||||
|
return 1;
|
||||||
|
if (A_CheckSoundPlaying(-1, 8) && klabs(g_player[a2].ps->pos.x - a1->x) + klabs(g_player[a2].ps->pos.y - a1->y) < 23040)
|
||||||
|
return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int dword_AA2F4;
|
||||||
|
|
||||||
|
void sub_535DC(void)
|
||||||
|
{
|
||||||
|
dword_AA2F4 ^= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int sub_535EC(void)
|
||||||
|
{
|
||||||
|
return dword_AA2F4;
|
||||||
|
}
|
||||||
|
|
||||||
|
int dword_AA300;
|
||||||
|
|
||||||
|
struct struct2B80E0 {
|
||||||
|
short f_0;
|
||||||
|
short f_2;
|
||||||
|
int f_4;
|
||||||
|
int f_8;
|
||||||
|
int f_c;
|
||||||
|
int f_10;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct2B80E0 f2B80E0[20];
|
||||||
|
|
||||||
|
int ghtrophy_isakill(short a1)
|
||||||
|
{
|
||||||
|
spritetype *spr = &sprite[a1];
|
||||||
|
for (int i = 0; i < dword_AA300; i++)
|
||||||
|
{
|
||||||
|
if (f2B80E0[i].f_0 == a1)
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int ghtrax_isplrupwind(short a1, short a2)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ghtrax_leavetrax(short a1)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
void ghtrax_leavedroppings(short a1)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void ghdeploy_bias(short a1)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
38
source/rr/src/rrdh.h
Normal file
38
source/rr/src/rrdh.h
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
/*
|
||||||
|
Copyright (C) 2016 EDuke32 developers and contributors
|
||||||
|
Copyright (C) 2020 Nuke.YKT
|
||||||
|
|
||||||
|
This file is part of EDuke32.
|
||||||
|
|
||||||
|
EDuke32 is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License version 2
|
||||||
|
as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
int rrdh_random(void);
|
||||||
|
int ghcons_isanimalescapewall(short w);
|
||||||
|
int ghcons_isanimalescapesect(short s);
|
||||||
|
int ghtrophy_isakill(short a1);
|
||||||
|
int sub_535EC(void);
|
||||||
|
void ghdeploy_bias(short a1);
|
||||||
|
int ghcons_findnewspot(short a1);
|
||||||
|
void ghtrax_leavedroppings(short a1);
|
||||||
|
void ghtrax_leavetrax(short a1);
|
||||||
|
int ghtrax_isplrupwind(short a1, short a2);
|
||||||
|
int ghsound_pfiredgunnear(spritetype* a1, short a2);
|
||||||
|
int ghsound_pmadesound(spritetype* a1, short a2);
|
||||||
|
int ghsound_pmadecall(spritetype* a1, short a2);
|
|
@ -894,7 +894,7 @@ void G_DisplayRest(int32_t smoothratio)
|
||||||
menutext_(160<<16, (90+16+8)<<16, -g_levelTextTime+22/*quotepulseshade*/, currentLevel->DisplayName(), o, TEXT_XCENTER);
|
menutext_(160<<16, (90+16+8)<<16, -g_levelTextTime+22/*quotepulseshade*/, currentLevel->DisplayName(), o, TEXT_XCENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_player[myconnectindex].ps->newowner == -1 && ud.overhead_on == 0 && cl_crosshair && ud.camerasprite == -1)
|
if (!DEER && g_player[myconnectindex].ps->newowner == -1 && ud.overhead_on == 0 && ud.crosshair && ud.camerasprite == -1)
|
||||||
{
|
{
|
||||||
int32_t a = CROSSHAIR;
|
int32_t a = CROSSHAIR;
|
||||||
if ((unsigned) a < MAXTILES)
|
if ((unsigned) a < MAXTILES)
|
||||||
|
@ -1164,6 +1164,101 @@ void G_DisplayLogo(void)
|
||||||
Mus_Stop();
|
Mus_Stop();
|
||||||
FX_StopAllSounds(); // JBF 20031228
|
FX_StopAllSounds(); // JBF 20031228
|
||||||
S_ClearSoundLocks(); // JBF 20031228
|
S_ClearSoundLocks(); // JBF 20031228
|
||||||
|
if (DEER)
|
||||||
|
{
|
||||||
|
if (!g_noLogo /* && (!g_netServer && ud.multimode < 2) */)
|
||||||
|
{
|
||||||
|
if (!I_CheckAllInput() && g_noLogoAnim == 0)
|
||||||
|
{
|
||||||
|
videoClearScreen(0);
|
||||||
|
|
||||||
|
P_SetGamePalette(g_player[myconnectindex].ps, BASEPAL, 0); // JBF 20040308
|
||||||
|
fadepal(0, 0, 0, 0, 252, 28);
|
||||||
|
renderFlushPerms();
|
||||||
|
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, 7106, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||||
|
videoNextPage();
|
||||||
|
fadepaltile(0, 0, 0, 252, 0, -4, 7106);
|
||||||
|
totalclock = 0;
|
||||||
|
|
||||||
|
while (totalclock < (120 * 3) && !I_CheckAllInput())
|
||||||
|
{
|
||||||
|
if (G_FPSLimit())
|
||||||
|
{
|
||||||
|
videoClearScreen(0);
|
||||||
|
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, 7106, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||||
|
G_HandleAsync();
|
||||||
|
|
||||||
|
if (g_restorePalette)
|
||||||
|
{
|
||||||
|
P_SetGamePalette(g_player[myconnectindex].ps, g_player[myconnectindex].ps->palette, 0);
|
||||||
|
g_restorePalette = 0;
|
||||||
|
}
|
||||||
|
videoNextPage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fadepaltile(0, 0, 0, 0, 252, 4, 7106);
|
||||||
|
}
|
||||||
|
|
||||||
|
videoClearScreen(0L);
|
||||||
|
videoNextPage();
|
||||||
|
|
||||||
|
inputState.ClearAllInput();
|
||||||
|
|
||||||
|
videoClearScreen(0L);
|
||||||
|
videoNextPage();
|
||||||
|
|
||||||
|
videoClearScreen(0);
|
||||||
|
|
||||||
|
//g_player[myconnectindex].ps->palette = drealms;
|
||||||
|
//G_FadePalette(0,0,0,252);
|
||||||
|
|
||||||
|
if (!inputState.CheckAllInput() && g_noLogoAnim == 0)
|
||||||
|
{
|
||||||
|
videoClearScreen(0);
|
||||||
|
|
||||||
|
P_SetGamePalette(g_player[myconnectindex].ps, BASEPAL, 8 + 2 + 1); // JBF 20040308
|
||||||
|
fadepal(0, 0, 0, 0, 252, 28);
|
||||||
|
renderFlushPerms();
|
||||||
|
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, 7107, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||||
|
videoNextPage();
|
||||||
|
fadepaltile(0, 0, 0, 252, 0, -4, 7107);
|
||||||
|
totalclock = 0;
|
||||||
|
|
||||||
|
while (totalclock < (120 * 3) && !I_CheckAllInput())
|
||||||
|
{
|
||||||
|
if (G_FPSLimit())
|
||||||
|
{
|
||||||
|
videoClearScreen(0);
|
||||||
|
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, 7107, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||||
|
G_HandleAsync();
|
||||||
|
|
||||||
|
if (g_restorePalette)
|
||||||
|
{
|
||||||
|
P_SetGamePalette(g_player[myconnectindex].ps, g_player[myconnectindex].ps->palette, 0);
|
||||||
|
g_restorePalette = 0;
|
||||||
|
}
|
||||||
|
videoNextPage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fadepaltile(0, 0, 0, 0, 252, 4, 7107);
|
||||||
|
}
|
||||||
|
|
||||||
|
inputState.ClearAllInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
renderFlushPerms();
|
||||||
|
videoClearScreen(0L);
|
||||||
|
videoNextPage();
|
||||||
|
|
||||||
|
//g_player[myconnectindex].ps->palette = palette;
|
||||||
|
P_SetGamePalette(g_player[myconnectindex].ps, BASEPAL, 0); // JBF 20040308
|
||||||
|
|
||||||
|
//G_FadePalette(0,0,0,0);
|
||||||
|
videoClearScreen(0L);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (RRRA)
|
if (RRRA)
|
||||||
return;
|
return;
|
||||||
if (RR)
|
if (RR)
|
||||||
|
|
Loading…
Reference in a new issue